setTimeout 在 Firefox 中延迟
setTimeout delayed in firefox
我一直在尝试在我的 javascript 应用程序中创建一个 setTimeout 循环,它在除 firefox 之外的所有浏览器中都运行良好。 (我知道,旧闻)
当延迟设置为 500 毫秒、1000 毫秒或类似值时,由于某种原因,setTimeout 调用会延迟很长时间,可能大约 20 秒。我尝试了一些不同的东西,但在 FF 中似乎一切都被延迟了。需要设置两个 null 参数,因为在某些情况下可能需要使用其他一些值调用它们,也需要使用 setTimeout 调用。
我试过:
timerMessagesRequest = setTimeout(function () {
getSetOfSenders(null, null);
}, pollingDelay);
timerMessagesRequest = setTimeout(function () {
getSetOfSenders(null, null);
}, pollingDelay, undefined);
timerMessagesRequest = setTimeout(
getSetOfSenders(null, null)
, pollingDelay);
下面的代码是setTimeout的循环示例。
var foo = function(){
setTimeout(function(){
console.log("test");
foo();
},1000);
};
foo();
我没有发现任何问题 运行在 FF 上运行这个。
所以这意味着您输入的代码不会导致问题。
就像我在评论中所说的那样,在这种情况下,使用 setInterval
更好,也更难出现错误。
如果您需要更多帮助,请向我们展示更多代码
已编辑:
http://www-cs-students.stanford.edu/~eparker/files/other/test_settimeout.html
这可能与问题仅发生在 FF 上的原因有关。
当我 运行 带有 FF 的页面时,我看到了短暂的延迟,这在 chrome.
中没有发生
我最终尝试了更高的轮询延迟 (5000ms),这在 FF 中效果很好。在 FF 中,ajax 请求在下一次调用之前处理似乎 500 毫秒太快了。
我一直在尝试在我的 javascript 应用程序中创建一个 setTimeout 循环,它在除 firefox 之外的所有浏览器中都运行良好。 (我知道,旧闻) 当延迟设置为 500 毫秒、1000 毫秒或类似值时,由于某种原因,setTimeout 调用会延迟很长时间,可能大约 20 秒。我尝试了一些不同的东西,但在 FF 中似乎一切都被延迟了。需要设置两个 null 参数,因为在某些情况下可能需要使用其他一些值调用它们,也需要使用 setTimeout 调用。
我试过:
timerMessagesRequest = setTimeout(function () {
getSetOfSenders(null, null);
}, pollingDelay);
timerMessagesRequest = setTimeout(function () {
getSetOfSenders(null, null);
}, pollingDelay, undefined);
timerMessagesRequest = setTimeout(
getSetOfSenders(null, null)
, pollingDelay);
下面的代码是setTimeout的循环示例。
var foo = function(){
setTimeout(function(){
console.log("test");
foo();
},1000);
};
foo();
我没有发现任何问题 运行在 FF 上运行这个。
所以这意味着您输入的代码不会导致问题。
就像我在评论中所说的那样,在这种情况下,使用 setInterval
更好,也更难出现错误。
如果您需要更多帮助,请向我们展示更多代码
已编辑: http://www-cs-students.stanford.edu/~eparker/files/other/test_settimeout.html
这可能与问题仅发生在 FF 上的原因有关。 当我 运行 带有 FF 的页面时,我看到了短暂的延迟,这在 chrome.
中没有发生我最终尝试了更高的轮询延迟 (5000ms),这在 FF 中效果很好。在 FF 中,ajax 请求在下一次调用之前处理似乎 500 毫秒太快了。