如何在Firefox Developer Tools中更新窗口对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (7)

我想使用Chrome或Firefox开发者工具在网站上执行代码。当我执行一个“window.RR”变量时,它会显示正确的值(它是网站服务器时间的度量,每次执行它都会给我一个不同的值)。当我在循环(变量c)中使用它时,变量在所有循环中都是常量,并且它等于第一个循环的值。

我的代码是:

var i;
b=window.RR;
for (i=0 ; i<400000 ; i++) {
c=window.RR;
if (c!==b) {
alert(c)
}
}

我期望在循环中使用它时会收到正确的值,我该如何实现?

提问于
用户回答回答于

我假设window.RR变量按间隔更新。这意味着变量是异步更新的。

例如,假设window.RR保存服务器的时间戳(以毫秒为单位),下面的代码window.RR每毫秒更新一次。

setInterval(function () {
    window.RR += 1;
}, 1);

如果然后运行循环,则执行可能需要1ms以上

var c = window.RR;
for (var i = 0; i < 999999999999999; i++){
    if (c != window.RR) { // This is always false
        console.log('This will never be printed');
    }
}

window.RR循环的执行期间不会改变,这是因为异步JavaScript的代码不并行运行。

因此,如果循环执行时间超过1毫秒,window.RR则在循环结束后将发生更新代码(在执行该代码之前,必须等待任何其他代码触发完成)。

扫码关注云+社区

领取腾讯云代金券