我的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++;
}
}
} ));
}
我添加异步:假mozilla工作,chrome崩溃,我怎么能修复我想要部分发布数据。我可以发送数据和proccess不是视图崩溃浏览器
<span id=yukle0></span>
<span id=yukle1></span>
<span id=yukle2></span>
<span id=yukle3></span>
$ .ajax({})无法正常运行崩溃浏览器
答案 0 :(得分:0)
你误解了ajax是如何工作的:你的ajax调用会被执行,然后代码会继续。
您的变量在ajax调用的success
函数中递增,因此该调用已完成。但是,你的循环会一直循环,直到发生这种情况(多次......),因此你的浏览器会因为不断生成新的ajax调用而崩溃。
除此之外,你可能不需要在循环中进行ajax调用,特别是如果你只是在该循环中增加一个计数器。你可以使用一个ajax调用在php中轻松完成。