Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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中每5秒运行一次函数_Javascript_Jquery - Fatal编程技术网

如何在javascript中每5秒运行一次函数

如何在javascript中每5秒运行一次函数,javascript,jquery,Javascript,Jquery,我试图创建一个javascript,如果我点击div1,我需要load_data1()函数每5秒刷新一次。如果用户单击div2或div3,我需要load_data1()函数停止。如下面的代码所示,当我单击div1时,load_data1()函数在5秒后运行并停止,之后它不会运行,您知道我在这里可能缺少什么吗 $(document).ready(function(){ $.ajaxSetup({ cache: false }); var timeout; function t

我试图创建一个javascript,如果我点击div1,我需要load_data1()函数每5秒刷新一次。如果用户单击div2或div3,我需要load_data1()函数停止。如下面的代码所示,当我单击div1时,load_data1()函数在5秒后运行并停止,之后它不会运行,您知道我在这里可能缺少什么吗

 $(document).ready(function(){

$.ajaxSetup({ cache: false });
    var timeout;
     function timeout_init() {
        timeout=setTimeout('load_data1()', 5000);
        return timeout;
    }



    $("#div1").click(function() {
        timeout_init();
        });

    $("#div2").click(function() {
            clearTimeout(timeout);
            load_data2();
    });

    $("#div3").click(function() {
             clearTimeout(timeout);
             load_data3();
    });

});

您想使用
setInterval()
而不是只触发一次的
setTimeout
setInterval
将一直触发,直到您清除它

您想使用
setInterval()
而不是只触发一次的
setTimeout
setInterval
将一直触发,直到您清除它

您可以尝试以下方法:

window.setInterval(function(){
  /// call your function here
}, 5000);

这是一个匿名函数,每5秒运行一次。

您可以尝试以下操作:

window.setInterval(function(){
  /// call your function here
}, 5000);

这是一个匿名函数,将每5秒运行一次。

检查差异b/w设置间隔和设置超时。也不要在这些函数上使用字符串表达式,而是使用函数引用。为了将来的引用,看在上帝的份上,请先用谷歌搜索。简单搜索一下
如何在javascript中每5秒运行一个函数
就可以解决你的问题。如果你只是在谷歌上搜索你的标题,你的答案就会出现在第一个结果中…@PSL,我对javascript不是很熟悉,你能详细说明一下吗?我可以用setInterval替换setTimeout,它起作用了。谢谢大家。请查看差异b/w设置间隔和设置超时。也不要在这些函数上使用字符串表达式,而是使用函数引用。为了将来的引用,看在上帝的份上,请先用谷歌搜索。简单搜索一下
如何在javascript中每5秒运行一个函数
就可以解决你的问题。如果你只是在谷歌上搜索你的标题,你的答案就会出现在第一个结果中…@PSL,我对javascript不是很熟悉,你能详细说明一下吗?我可以用setInterval替换setTimeout,它起作用了。谢谢大家。我遵循了你们的建议,它正在发挥作用,但我确实有一个顾虑。如果setInterval值为60000ms,当我单击选项卡时,它将等待60000ms加载页面。我真的需要页面加载时,点击标签,然后立即刷新每60000ms。你知道我该怎么做吗?在setInterval之前先调用你的函数。从timeout_init函数中的示例中,可以执行load_data2();设置间隔(加载数据2,6000);我遵循了你的建议,它正在发挥作用,但我确实有一个顾虑。如果setInterval值为60000ms,当我单击选项卡时,它将等待60000ms加载页面。我真的需要页面加载时,点击标签,然后立即刷新每60000ms。你知道我该怎么做吗?在setInterval之前先调用你的函数。从timeout_init函数中的示例中,可以执行load_data2();设置间隔(加载数据2,6000);