【问题标题】:jQuery while loop posting crashed browserjQuery while循环发布崩溃的浏览器
【发布时间】: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 是异步的。退出循环后才会执行回调函数。但是在回调函数增加变量之前,您无法退出循环。你看到这个问题了吗?
  • 我不会说英语。能举个例子吗?

标签: php jquery html ajax post


【解决方案1】:

您误解了 ajax 的工作原理:您的 ajax 调用被执行,然后代码继续运行。

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

除此之外,您可能不需要在循环中进行 ajax 调用,特别是如果您只是在该循环中增加一个计数器。只需一个 ajax 调用,您就可以在 php 中轻松做到这一点。

【讨论】:

  • 感谢 commet,我发布了我想使用 jQuery 的大数据,服务器限制了 max_input_vars。能给我举个例子吗? ——
  • @Agt 只需将ilkDeger++; 放在ajax 调用之后。
  • 感谢同时加载数据,成功不起作用 ilkDeger 越来越多@jeroen
猜你喜欢
  • 2014-04-17
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多