一尘不染

带有计时器的jQuery / Ajax调用

javascript

我有一个php页面,可回显数据库中的行。我想每30秒通过jquery /
ajax调用一次。但是我还希望能够随时调用该页面,以便如果我通过表单添加记录,则在表单提交后,我希望通过调用页面来ajax立即更新结果。谁能指出我正确的方向或提供一些基本代码,以便我设法找出答案?对于jquery
/ ajax还是很新的。


阅读 290

收藏
2020-05-01

共1个答案

一尘不染

如果要在计时器上进行设置,则可以使用JavaScript setTimeoutsetInterval方法:

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

where expression是一个函数,timeoutandinterval是整数(以毫秒为单位)。setTimeout运行一次计时器,然后运行expression一次,而setInterval将在expression每次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)来停止进度。

然后,您可以setInterval()在完成ajax表单提交后重新初始化呼叫。

2020-05-01