jQuery while循环发布崩溃的浏览器

时间:2015-09-03 20:20:56

标签: php jquery html ajax post

我的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({})无法正常运行崩溃浏览器

1 个答案:

答案 0 :(得分:0)

你误解了ajax是如何工作的:你的ajax调用会被执行,然后代码会继续。

您的变量在ajax调用的success函数中递增,因此该调用已完成。但是,你的循环会一直循环,直到发生这种情况(多次......),因此你的浏览器会因为不断生成新的ajax调用而崩溃。

除此之外,你可能不需要在循环中进行ajax调用,特别是如果你只是在该循环中增加一个计数器。你可以使用一个ajax调用在php中轻松完成。