【发布时间】:2015-09-04 04:27:53
【问题描述】:
我想要的 jQuery 代码在循环和发布数据跨度 ID 时,我得到跨度数据但发布崩溃。
while (ilkDeger < toplamDeger) {
var yukle ="yukle"+ilkDeger ;
var tekalan = '&'+$("#yukle"+ilkDeger+" :input").serialize();
var veriler = data;
//alert(ilkveri+tekalan);
$.ajax({
type: 'POST',
data: veriler,
success: function(sonuc){
//Gelen postu süzgeçle
var $response=$(sonuc);
var sonuc = $response.find('#cevap').val();
var yanit = $response.find('#yanit').text();
var baslangic = $response.find('#baslangic').val();
var limit = $response.find('#limit').val();
var servis = $response.find('#servis').val();
//Proggress Bar kodları
var prodeger=ilkDeger+1;
if(prodeger < <?=$top;?>) {
var olcu=(prodeger/<?=$top;?>*100);
$('.progress-bar').css('width', olcu+'%').attr('aria-valuenow', olcu).html(olcu+'%');
}else{
$('.progress-bar').css('width', 100 + '%').addClass('progress-bar-success').html('Tamamlandı.').attr('aria-valuenow', '100');
$('#progress-bar').css('width', 100 + '%').addClass('progress-bar-success');
}
if (sonuc == "1"){
$('#yukle'+ilkDeger).html('<b><font color=green>BAŞARILI : </font>'+yanit+'</b><hr>');
console.log(" Ürün Aktarıldı ");
ilkDeger++;
}
else if (sonuc=="0"){
$('#yukle'+ilkDeger).html('<b><font color=red>HATA : </font>'+yanit+'</b><hr>');
//$('#yukle'+ilkDeger).html('<div class="alert alert-success"><i class="fa fa-check-circle"></i>'+yanit+'<button type="button" class="close" data-dismiss="alert">×</button></div>');
console.log(yanit);
ilkDeger++;
} else {
$('#yukle'+ilkDeger).html('<b><font color=red>HATA : </font>Geçersiz işlem</b><hr>');
console.log(yanit);
ilkDeger++;
}
}
} ));
}
我添加了 async:false mozilla 工作,chrome 崩溃了,我如何修复我想要部分发布数据。我可以发送数据并且进程不是查看崩溃浏览器
<span id=yukle0></span>
<span id=yukle1></span>
<span id=yukle2></span>
<span id=yukle3></span>
$.ajax( { } ) 不工作崩溃浏览器
【问题讨论】:
-
不要那样做。您应该使您的代码正确异步。
-
AJAX 是异步的。退出循环后才会执行回调函数。但是在回调函数增加变量之前,您无法退出循环。你看到这个问题了吗?
-
我不会说英语。能举个例子吗?