每 3 秒我发出一个 AJAX POST 请求以获取进程的状态。这很好用。
当进程达到 100% 时,将执行回调函数(如下所示)以向页面添加新元素,然后取消用于每 3 秒连续获取进度的 setTimeout 方法。但是,我的用户告诉我它有时无法取消并且新元素没有添加到页面中,而且我一直卡在显示“100%”。
我已经一次又一次地测试了它,它永远不会卡住我。代码看起来也不错,但是我的 JavaScript 技能不是很好,所以我希望有人能指出是否有可能发生这个问题?
我已经评论了代码,很抱歉它很长。我试图减少它。
function convertNow(validURL){
startTime = setTimeout('getStatus();', 6000);
//AJAX CALL TO RUN PROCESS
$.ajax({
type: "GET",
url: "main.php",
data: 'url=' + validURL + '&filename=' + fileNameTxt,
success: function(msg){
//ON SUCCESS CLEAR SETTIMEOUT AND SHOW ELEMENTS (text)
clearTimeout(continueTime);
clearTimeout(startTime);
$("#loading").hide("slow");
$("#done").html("Done");
}//function
});//ajax
}//function convertNow
function getStatus(){
//AJAX CALL TO GET STATUS OF PROCESS
$.ajax({
type: "POST",
url: "fileReader.php",
data: 'textFile=' + fileNameTxt,
success: function(respomse){
textFileResponse = respomse.split(" ");
$("#done").html("Processing...");
}
});//ajax
clearTimeout(continueTime);
if(textFileResponse[0]=='100.0%'){
clearTimeout(continueTime);
}
else{
clearTimeout(startTime);
continueTime = setTimeout('getStatus();', 3000);
}
}