Jquery / Ajax调用计时器

时间:2010-12-28 00:25:58

标签: javascript jquery ajax timer setinterval

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

1 个答案:

答案 0 :(得分:69)

如果您想在计时器上设置内容,可以使用JavaScript的setTimeoutsetInterval方法:

setTimeout ( expression, timeout );
setInterval ( expression, interval );

其中expression是函数,timeoutinterval是整数,以毫秒为单位。 setTimeout运行一次计时器并运行expression一次,而每次expression通过时setInterval将运行interval

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

setInterval(function() {
    //call $.ajax here
}, 5000); //5 seconds

就Ajax而言,请参阅jQuery的ajax() method。如果您运行间隔,则无法阻止您从代码中的其他位置调用相同的ajax()


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

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

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

如果您将该ID存储在变量中,则可以调用clearInterval(id)来停止进展。

然后,您可以在完成ajax表单提交后重新验证setInterval()来电。