Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $(文档).ready+;setInterval=正在运行的多个实例_Javascript_Jquery_Timer - Fatal编程技术网

Javascript $(文档).ready+;setInterval=正在运行的多个实例

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

我的web应用程序当前使用此功能启动客户端中的通知检索:

$(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运行一次,然后当它执行自己时,它会再次调用自己,等等。。。明白了,谢谢!