Joh*_*ohn 42 javascript ajax jquery timer setinterval
我有一个php页面,它回显了数据库中的行.我想每隔30秒通过jquery/ajax调用它.但我也希望能够随时调用页面,这样如果我通过表单添加记录,一旦表单提交,我希望页面通过调用ajax立即更新结果.有人能指出我正确的方向或提供一些基本代码,所以我可以尝试解决这个问题吗?jquery/ajax仍然很新.
tre*_*ace 69
如果要在计时器上设置某些内容,可以使用JavaScript setTimeout
或setInterval
方法:
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表单提交后重新验证呼叫.