2015-09-03 69 views
0

我想要的jQuery代碼,而循環和發佈數據跨度id,我得到跨度數據,但後發生崩潰。jQuery雖然循環張貼崩潰的瀏覽器

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的工作,鉻墜毀,我怎麼可以固定,我想一部分一部分發布data.I可以發送數據和proccess沒有查看撞車瀏覽器

<span id=yukle0></span> 
<span id=yukle1></span> 
<span id=yukle2></span> 
<span id=yukle3></span> 

$阿賈克斯({})不工作崩潰瀏覽器

+0

不要這樣做。你應該讓你的代碼正確地異步。 – SLaks

+1

AJAX是異步的。直到退出循環後,回調函數纔會被執行。但是直到回調函數增加變量後,你才能退出循環。你看到這個問題嗎? – Barmar

+0

我很少說英語。你能給個例子嗎? – Agt

回答

0

您誤解了ajax是如何工作的:您的ajax調用被執行,然後代碼繼續。

您的變量在ajax調用的success函數中增加,因此該調用完成後。但是,您的循環會一直循環,直到發生這種情況(多次...),這樣您的瀏覽器就會崩潰,因爲它會持續生成新的ajax調用。

除此之外,你可能不需要在循環中進行ajax調用,特別是如果你只是在該循環中增加一個計數器。只需使用一個ajax調用,您就可以輕鬆地在php中執行此操作。

+0

Thaks for commet,我張貼大數據我想使用jQuery,服務器有限max_input_vars。你能給個例子嗎? - – Agt

+0

@Agt在ajax調用之後放上'ilkDeger ++;'。 – jeroen

+0

同時感謝加載數據,成功不起作用ilkDeger越來越多的數字@jeroen – Agt