Jquery 满足条件后停止执行功能
我的html页面触发2个php脚本,一个用于执行任务,另一个用于轮询日志文件并在html页面上显示结果。在“updatestock.php”完成后,如何停止getStatus()进程Jquery 满足条件后停止执行功能,jquery,Jquery,我的html页面触发2个php脚本,一个用于执行任务,另一个用于轮询日志文件并在html页面上显示结果。在“updatestock.php”完成后,如何停止getStatus()进程 $(函数(){ startProcess(); getStatus(); }); 函数startProcess(){ $(“#完成”).load('updatestock.php'); } 函数getStatus(){ $(“#status”).load('getstatus.php'); setTimeout(
$(函数(){
startProcess();
getStatus();
});
函数startProcess(){
$(“#完成”).load('updatestock.php');
}
函数getStatus(){
$(“#status”).load('getstatus.php');
setTimeout(“getStatus()”,2000);
}
将对getStatus
的延迟调用放入load
的回调中,并使用if语句根据getStatus.php返回的内容确定是否调用它。它可能是某个响应代码或数据位,例如JSON响应中的“finished”:true
。将对getStatus
的延迟调用放在load
的回调中,并使用if语句根据getStatus.php返回的内容确定是否调用它。它可能是某个响应代码或某个数据位,例如JSON响应中的“finished”:true
。使用load()
方法的回调设置标志,然后在getStatus()
方法中检查:
$(function() {
startProcess();
getStatus();
var flag = false;
});
function startProcess() {
$("#done").load('updatestock.php', function() {
flag = true;
});
}
function getStatus() {
if ( flag ) return false;
$("#status").load('getstatus.php');
setTimeout("getStatus()",2000);
}
使用
load()
方法中的回调设置标志,然后在getStatus()方法中检查标志:
$(function() {
startProcess();
getStatus();
var flag = false;
});
function startProcess() {
$("#done").load('updatestock.php', function() {
flag = true;
});
}
function getStatus() {
if ( flag ) return false;
$("#status").load('getstatus.php');
setTimeout("getStatus()",2000);
}
您应该使用clearTimeout:
// persistent variable needed
var timeout = 0;
$(function() {
startProcess();
getStatus();
});
function startProcess() {
// second parameter of load = completion callback
$("#done").load('updatestock.php',function()
{
// clearTimeout will stop the next getStatus from firing.
clearTimeout(timeout);
timeout = -1;
});
}
function getStatus() {
// just in case. You never know what's cached.
// (the ids for setTimeout are positive).
if( timeout < 0 ) return;
$("#status").load('getstatus.php');
// sets the ID of the current timeout.
timeout = setTimeout("getStatus()",2000);
}
//需要持久变量
var超时=0;
$(函数(){
startProcess();
getStatus();
});
函数startProcess(){
//load的第二个参数=完成回调
$(“#完成”).load('updatestock.php',function()
{
//clearTimeout将停止触发下一个getStatus。
clearTimeout(超时);
超时=-1;
});
}
函数getStatus(){
//以防万一。你永远不知道缓存了什么。
//(setTimeout的ID为正值)。
if(超时<0)返回;
$(“#status”).load('getstatus.php');
//设置当前超时的ID。
timeout=setTimeout(“getStatus()”,2000);
}
您应该使用clearTimeout:
// persistent variable needed
var timeout = 0;
$(function() {
startProcess();
getStatus();
});
function startProcess() {
// second parameter of load = completion callback
$("#done").load('updatestock.php',function()
{
// clearTimeout will stop the next getStatus from firing.
clearTimeout(timeout);
timeout = -1;
});
}
function getStatus() {
// just in case. You never know what's cached.
// (the ids for setTimeout are positive).
if( timeout < 0 ) return;
$("#status").load('getstatus.php');
// sets the ID of the current timeout.
timeout = setTimeout("getStatus()",2000);
}
//需要持久变量
var超时=0;
$(函数(){
startProcess();
getStatus();
});
函数startProcess(){
//load的第二个参数=完成回调
$(“#完成”).load('updatestock.php',function()
{
//clearTimeout将停止触发下一个getStatus。
clearTimeout(超时);
超时=-1;
});
}
函数getStatus(){
//以防万一。你永远不知道缓存了什么。
//(setTimeout的ID为正值)。
if(超时<0)返回;
$(“#status”).load('getstatus.php');
//设置当前超时的ID。
timeout=setTimeout(“getStatus()”,2000);
}
在我移动'var flag=false;'在函数{}的外部,这段代码直到我移动'var flag=false;'到函数{}的外部