缓存window.innerHeight和window.innerWidth的值

时间:2017-11-05 13:25:08

标签: javascript browser

为了防止布局颠簸,我想缓存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一次吗?即使多次访问导出的属性?

1 个答案:

答案 0 :(得分:0)

我认为你是对的......我认为你的例子都会缓存这些值。

模块代码确实在应用程序启动时运行,并且仅使用require可用。它不会在每个require重新运行。如果您需要非缓存值,则必须将它们放在方法中,例如:

module.exports = {
    cachedH: window.innerHeight, // will not change

    calculatedH: function() {
        return window.innerHeight; // will recalculate each time called
    }
};