Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 带计时器的Jquery/Ajax调用_Javascript_Jquery_Ajax_Timer_Setinterval - Fatal编程技术网

Javascript 带计时器的Jquery/Ajax调用

Javascript 带计时器的Jquery/Ajax调用,javascript,jquery,ajax,timer,setinterval,Javascript,Jquery,Ajax,Timer,Setinterval,我有一个php页面,可以从数据库中回显行。我想每30秒通过jquery/ajax调用一次。但我也希望能够随时调用页面,这样,如果我通过表单添加记录,一旦表单提交,我希望通过调用ajax将页面立即更新结果。有没有人能给我指出正确的方向,或者提供一些基本代码,让我试着找出答案?对于jquery/ajax来说还是很新的。如果您想在计时器上设置一些东西,可以使用JavaScript的setTimeout或setInterval方法: setTimeout ( expression, timeout );

我有一个php页面,可以从数据库中回显行。我想每30秒通过jquery/ajax调用一次。但我也希望能够随时调用页面,这样,如果我通过表单添加记录,一旦表单提交,我希望通过调用ajax将页面立即更新结果。有没有人能给我指出正确的方向,或者提供一些基本代码,让我试着找出答案?对于jquery/ajax来说还是很新的。

如果您想在计时器上设置一些东西,可以使用JavaScript的
setTimeout
setInterval
方法:

setTimeout ( expression, timeout );
setInterval ( expression, interval );
其中,
表达式
是一个函数,
超时
间隔
是以毫秒为单位的整数
setTimeout
运行计时器一次,并运行
表达式一次,而setInterval将在每次
间隔
经过时运行
表达式

因此,在您的情况下,它的工作原理如下:

setInterval(function() {
    //call $.ajax here
}, 5000); //5 seconds
至于Ajax,请参阅jQuery的。如果您运行一个interval,那么没有什么可以阻止您从代码中的其他地方调用相同的
ajax()


如果您希望每隔30秒运行一次间隔,直到用户启动表单提交…然后在此之后创建一个新间隔,也可以:

setInterval()
返回一个整数,该整数是间隔的ID

var id = setInterval(function() {
    //call $.ajax here
}, 30000); // 30 seconds
如果将该ID存储在变量中,则可以调用
clearInterval(ID)
,这将停止进程


然后,您可以在完成ajax表单提交后重新启动
setInterval()
调用。

感谢您的回复!你是说如果我使用上面的代码每5秒刷新一次ajax调用,那么在同一页上,我有一张由人填写的表单,可以提交,添加完记录后,我可以调用上面相同的setInterval函数,它不会同时运行该函数的两个实例?因此,您希望每隔30秒运行一次interval,直到用户开始提交表单…然后再创建一个新的interval?这也是可能的
setInterval()
返回一个整数,该整数是间隔的ID。如果将该ID存储在变量中,则可以调用
clearInterval(ID)
,这将停止进程。然后,您可以在完成ajax表单提交后重新实例化
setInterval()
调用。