ajax php setinterval,关于javascript:通过ajax执行完php脚本后如何停止setInterval

我一直在寻找答案,而我没有找到它的原因可能就是我完全从getgo中破坏了脚本,所以请任何可以帮助我的人都非常感谢。

我有一个javascript函数,它会触发表单提交的onClick并运行对script1.php的ajax调用,然后使用setInterval启动计时器。 setInterval正在调用另一个javascript函数以从script1.php轮询输出文件,以便我们可以将新数据添加到屏幕上。 这部分工作正常。

但是,我想在script1.php完成处理后停止计时器。 我该怎么做呢? 我尝试在script1.php中将clearInterval(myTimer)放入它运行的最后一条语句,它似乎正在浏览器中显示,但并未停止计时器。

var myTimer;

var file1 ="script1.php";

var file2 ="script2.php";

function startTimer(myTimer) {

myTimer = window.setInterval(loadData, 2000);

}

function stopTimer() {

clearInterval(myTimer);

}

function startData()

{

ajaxRequest(file1,data);

startTimer(myTimer);

}

function loadData()

{

ajaxRequest(file2)

}

get data

please enter data above

是的,你搞砸了。 您只需要让PHP将数据直接返回到执行AJAX调用的脚本即可。

在AJAX成功时,PHP脚本输出的任何文本都可用于成功回调。

如果您使用的是JQuery,它将非常简单:

$.ajax({

url: 'someurl',

success: function(response) {

// do whatever with response

}

});

由于某种原因,在我转向使用setInterval之前,这种方法无法正常工作,但是我再次尝试了一下,而ajax现在可以正常工作了。 谢谢!

@ZekarKovacs没问题。 很高兴我能帮上忙。 如果这回答了您的问题,则可能需要单击它旁边的复选标记来接受答案。

您正在将myTimer作为参数传递给startTimer。 这使myTimer成为startTimer的局部变量。 因此,它不会更新全局myTimer。

它应该是:

function startTimer() {

myTimer = setInterval(loadData, 2000);

}

function stopTimer() {

clearInterval(myTimer);

}

然后,您只需要调用startTimer()和stopTimer()。

当您开始间隔时,将其分配给任何可访问的变量,请说" INTERVAL_ITEM"

当您的回复达到clearInterval(INTERVAL_ITEM)时;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值