我有递归js脚本,它将GET请求和php脚本更新xml数据发送100行一次。但我的问题是当我运行脚本时没有显示进度。我不明白错误在哪里或我如何解决它
$(document).ready(function(){
function ProcessClear(start_position){
$.ajax({
type:"GET",
async:false, // set async false to wait for previous response; true for async
url: "checkUrl.php?start=y&start_position="+start_position,
dataType:"html",
success: function(data){
if( data == "done" ){
$('.at_test_red span').html( "end" );
}else{
$('.at_test_red span').html( data );
ProcessClear( data );
}
}
});
}
ProcessClear(1);
});
在这一行$('.at_test_red span').html( data );
应该是可见的,但它不起作用
答案 0 :(得分:1)
async : false
导致此问题。因为脚本将在单线程上运行。它应该是true
。
async:false,//设置async false以等待先前的响应;对于异步
,则为true
为了达到上述意图,当你得到上一个请求的响应时,你应该递归地调用ProcessClear
函数。即在ajax电话的complete
或success
中。
$(document).ready(function(){
function ProcessClear(start_position){
$.ajax({
type:"GET",
async: true, //true is default
url: "checkUrl.php?start=y&start_position="+start_position,
dataType:"html",
success: function(data){
if( data == "done" ){
$('.at_test_red span').html( "end" );
}else{
$('.at_test_red span').html( data );
ProcessClear( data ); //<-- This will call only on getting response from previous request.
}
}
});
}
ProcessClear(1);
});