为了防止布局颠簸,我想缓存window.innerHeight和window.innerWidth的值。我是否正确地假设这个模块:
module.exports = {
h: window.innerHeight,
w: window.innerWidth
};
当浏览器化时,每次使用属性时都会访问window.innerHeight和window.innerWidth,但是下面的模块:
var windowHeight = window.innerHeight;
var windowWidth = window.innerWidth;
module.exports = {
h: windowHeight,
w: windowWidth
};
只能访问window.innerHeight和window.innerWidth一次吗?即使多次访问导出的属性?
答案 0 :(得分:0)
我认为你是对的......我认为你的例子都会缓存这些值。
模块代码确实在应用程序启动时运行,并且仅使用require
可用。它不会在每个require
重新运行。如果您需要非缓存值,则必须将它们放在方法中,例如:
module.exports = {
cachedH: window.innerHeight, // will not change
calculatedH: function() {
return window.innerHeight; // will recalculate each time called
}
};