Javascript $(文档).ready+;setInterval=正在运行的多个实例
我的web应用程序当前使用此功能启动客户端中的通知检索:Javascript $(文档).ready+;setInterval=正在运行的多个实例,javascript,jquery,timer,Javascript,Jquery,Timer,我的web应用程序当前使用此功能启动客户端中的通知检索: $(document).ready( getNotifications() ); 这很好,但我需要它每XXX秒运行一次,因此我在getNotifications()的末尾添加了一个setInterval计时器,如下所示: function getNotifications() { //(do stuff) //now repeat every X seconds (10000 = 10s) setInterv
$(document).ready( getNotifications() );
这很好,但我需要它每XXX秒运行一次,因此我在getNotifications()
的末尾添加了一个setInterval计时器,如下所示:
function getNotifications() {
//(do stuff)
//now repeat every X seconds (10000 = 10s)
setInterval(getNotifications, 30000);
}
问题——这样做似乎会触发计时器循环函数的多个实例。通过使用alert()我可以看到,每个计时器周期都会创建一个新的计时器实例集,而不是对同一个实例进行所需的迭代
如果没有多个实例,如何为我的功能获取计时器/循环
谢谢 将
setInterval
更改为setTimeout
setInterval每X毫秒持续触发一次,
setTimeout在x毫秒后触发一次
并且您不希望()
在文档中。准备就绪
。它正在调用getNotifications
,而不是为其分配引用
function getNotifications() {
window.setTimeout(getNotifications, 30000);
}
$( getNotifications );
将
setInterval
更改为setTimeout
setInterval每X毫秒持续触发一次,
setTimeout在x毫秒后触发一次
并且您不希望()
在文档中。准备就绪
。它正在调用getNotifications
,而不是为其分配引用
function getNotifications() {
window.setTimeout(getNotifications, 30000);
}
$( getNotifications );
将
setInterval
更改为setTimeout
setInterval每X毫秒持续触发一次,
setTimeout在x毫秒后触发一次
并且您不希望()
在文档中。准备就绪
。它正在调用getNotifications
,而不是为其分配引用
function getNotifications() {
window.setTimeout(getNotifications, 30000);
}
$( getNotifications );
将
setInterval
更改为setTimeout
setInterval每X毫秒持续触发一次,
setTimeout在x毫秒后触发一次
并且您不希望()
在文档中。准备就绪
。它正在调用getNotifications
,而不是为其分配引用
function getNotifications() {
window.setTimeout(getNotifications, 30000);
}
$( getNotifications );
或者,如何(通过不在函数中包含重复信息来保持函数更干净):
或者,如何(通过不在函数中包含重复信息来保持函数更干净):
或者,如何(通过不在函数中包含重复信息来保持函数更干净):
或者,如何(通过不在函数中包含重复信息来保持函数更干净):
$(document).ready(getNotifications())代码>要扩展吗?你的评论没有现在那么有用。这不是答案……这是一个评论。)您正在调用它,而不是分配它。并用setTimeout更改setInterval,它就会工作。每当您有类似于foo(bar())
的内容时,首先执行bar
,并将其返回值传递给foo
。参数总是在传递给函数之前进行求值。$(document).ready(getNotifications())代码>要扩展吗?你的评论没有现在那么有用。这不是答案……这是一个评论。)您正在调用它,而不是分配它。并用setTimeout更改setInterval,它就会工作。每当您有类似于foo(bar())
的内容时,首先执行bar
,并将其返回值传递给foo
。参数总是在传递给函数之前进行求值。$(document).ready(getNotifications())代码>要扩展吗?你的评论没有现在那么有用。这不是答案……这是一个评论。)您正在调用它,而不是分配它。并用setTimeout更改setInterval,它就会工作。每当您有类似于foo(bar())
的内容时,首先执行bar
,并将其返回值传递给foo
。参数总是在传递给函数之前进行求值。$(document).ready(getNotifications())代码>要扩展吗?你的评论没有现在那么有用。这不是答案……这是一个评论。)您正在调用它,而不是分配它。并用setTimeout更改setInterval,它就会工作。每当您有类似于foo(bar())
的内容时,首先执行bar
,并将其返回值传递给foo
。参数总是在传递给函数之前进行求值。啊…是的,当然--setInterval会启动计时器函数的循环,每个循环都以间隔运行。。。但是,由于我在函数的末尾自我引用函数,我只需要通过setTimeout调用它,setTimeout运行一次,然后当它执行自己时,它会再次调用自己,等等。。。明白了,谢谢!啊……是的,当然——setInterval启动计时器函数的一个循环,每个循环都以间隔运行。。。但是,由于我在函数的末尾自我引用函数,我只需要通过setTimeout调用它,setTimeout运行一次,然后当它执行自己时,它会再次调用自己,等等。。。明白了,谢谢!啊……是的,当然——setInterval启动计时器函数的一个循环,每个循环都以间隔运行。。。但是,由于我在函数的末尾自我引用函数,我只需要通过setTimeout调用它,setTimeout运行一次,然后当它执行自己时,它会再次调用自己,等等。。。明白了,谢谢!啊……是的,当然——setInterval启动计时器函数的一个循环,每个循环都以间隔运行。。。但是,由于我在函数的末尾自我引用函数,我只需要通过setTimeout调用它,setTimeout运行一次,然后当它执行自己时,它会再次调用自己,等等。。。明白了,谢谢!