我有一个回显数据库中的行的php页面。我想每隔30秒通过jquery / ajax调用它。但我也希望能够随时调用页面,这样如果我通过表单添加记录,一旦表单提交,我希望页面通过调用ajax立即更新结果。有人能指出我正确的方向或提供一些基本代码,所以我可以尝试解决这个问题吗?对于jquery / ajax来说还是一个新手。
答案 0 :(得分:69)
如果您想在计时器上设置内容,可以使用JavaScript的setTimeout
或setInterval
方法:
setTimeout ( expression, timeout );
setInterval ( expression, interval );
其中expression
是函数,timeout
和interval
是整数,以毫秒为单位。 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()
来电。