我正在观察消息并使用消息时间戳跟踪这些观察结果。这些观察有一个重要条件:如果页面上没有客户端活动(光标不移动,或者他没有输入任何内容),则跟踪时间戳不应更新。客户经常收到一条新消息,但没有任何活动。这意味着一旦完全观察到该元素,Observer 就会跳过该元素。但是当用户实际提供一些活动时,不会重新观察该元素,这意味着除非比率发生变化,否则永远不会再次调用观察者回调。我如何告诉 IS 重新计算所有观察以触发我的回调?
手动“重新观察”元素的问题在于,如果元素已经在交叉边界内,则永远不会调用回调。
一些伪代码例如:
IS.callback = function(entries, observer){
for (var entry in entries)
{
if (activity && entries.hasOwnProperty(entry))
{
if (lastTimestamp < entries[entry].data.timestamp)
lastTimestamp = entries[entry].data.timestamp;
}
}
};
Run Code Online (Sandbox Code Playgroud) 我正在使用安装了VueAxios 的标准Vue starer Webpack模板。我想在使用dev命令构建时使用.env变量配置axios 。我在其中设置了所有内容/config/index.js:
const devEnv = require('./dev.env')
module.exports = {
...
host: devEnv.host || 'localhost',
port: devEnv.port || 8080,
...
}
Run Code Online (Sandbox Code Playgroud)
然后,dev.env.js在同一目录中定义主机和端口,一切正常。
const dotenv = require('dotenv').config({path: '../.env'})
let host = process.env.VUE_HOST;
let port = +process.env.VUE_PORT;
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
host,
port
})
Run Code Online (Sandbox Code Playgroud)
但是问题是我无法在src/main.jsVue应用程序中访问主机值。
如果我尝试这样做,我会得到一个错误
vue未定义
import axios from 'axios'
import VueAxios from 'vue-axios'
...
Vue.use(VueAxios, axios)
Vue.axios.defaults.baseURL = `http://${process.env.host}:${process.env.port}`;
Run Code Online (Sandbox Code Playgroud)
尽管端口可以正常工作,但主机不能正常运行并引发错误。