Jquery/Ajax调用计时器

Joh*_*ohn 42 javascript ajax jquery timer setinterval

我有一个php页面,它回显了数据库中的行.我想每隔30秒通过jquery/ajax调用它.但我也希望能够随时调用页面,这样如果我通过表单添加记录,一旦表单提交,我希望页面通过调用ajax立即更新结果.有人能指出我正确的方向或提供一些基本代码,所以我可以尝试解决这个问题吗?jquery/ajax仍然很新.

tre*_*ace 69

如果要在计时器上设置某些内容,可以使用JavaScript setTimeoutsetInterval方法:

setTimeout ( expression, timeout );
setInterval ( expression, interval );
Run Code Online (Sandbox Code Playgroud)

expression函数在哪里,timeout并且interval是以毫秒为单位的整数.setTimeout运行一次计时器并运行expression一次,而setInterval将在expression每次interval通过时运行.

所以在你的情况下它会像这样工作:

setInterval(function() {
    //call $.ajax here
}, 5000); //5 seconds
Run Code Online (Sandbox Code Playgroud)

就Ajax而言,请参阅jQuery的ajax()方法.如果你运行一个间隔,没有什么能阻止你从ajax()代码中的其他地方调用它.


如果你想要的是一个间隔每30秒运行一次,直到用户启动一个表单提交...然后在那之后创建一个新的间隔,这也是可能的:

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

var id = setInterval(function() {
    //call $.ajax here
}, 30000); // 30 seconds
Run Code Online (Sandbox Code Playgroud)

如果您将该ID存储在变量中,则可以调用clearInterval(id)哪个将停止进度.

然后,您可以setInterval()在完成ajax表单提交后重新验证呼叫.

  • 所以你想要的是一个间隔每30秒*运行一次*用户启动一个表单提交...然后在那之后创建一个新的间隔?这也是可能的.`setInterval()`返回一个整数,它是间隔的ID.如果将该ID存储在变量中,则可以调用`clearInterval(id)`来停止进程.然后,您可以在完成ajax表单提交后重新实例化`setInterval()`调用. (9认同)