2016-03-25 5 views
0

Ich habe ziemlich seltsame Bug angetroffen. Bei bestimmten AJAX-Anfragen hängt Safari für genau 60 Sekunden und zeigt dann die von der Anfrage zurückgegebenen Daten an. Eine Person behauptet, es stürzt seine Safari zusammen (sowohl Desktop-und Mobile). Dies passiert in keinem anderen Browser. Es scheint nichts Besonderes an dieser Anfrage zu sein, aber es passiert. Es vier mögliche Werte für $(this).attr('data-lb-daysago')-7, 30, 90, 180. Problem tritt nur bei 30 Hier ist der Code:AJAX-Anfragen hängen/stürzt ab Safari

$('[data-lb-daysago]').click(function() 
{ 
    if (parseInt($(this).attr('data-lb-daysago')) != daysago) 
    { 
     $('#load_more_row_lb').html(loader()); 
     $('[data-lb-daysago]').removeClass('active_da'); 
     $(this).addClass('active_da'); 
     $('[data-lb-last-offset]').hide(); 
     daysago = parseInt($(this).attr('data-lb-daysago')); 
     var request = {action: 'leaderboard_ajax', daysago: daysago, offset: 0}; 
     $.ajax({type: "post", dataType: "json", url: ep_ajax_object.ajax_url, data: request}).done(function (e) 
     { 
      $('[data-lb-last-offset]').attr('data-lb-last-offset', e.offset); 
      $('[data-lb-last-offset]').html(e.html); 
      $('[data-lb-last-offset]').show(); 
      if (typeof e.nomore == 'undefined') 
      { 
       $('#load_more_row_lb').html('<span class="load_more_button" id="load_more_lb">Load More <span class="fi-expand-down" title="expand down" aria-hidden="true"></span></span>'); 
       bind_things(); 
      } 
      else 
      { 
       $('#load_more_row_lb').html('<span class="load_more_button" id="load_more_lb">Load More <span class="fi-expand-down" title="expand down" aria-hidden="true"></span></span>'); 
       bind_things(); 
       $('#load_more_row_lb').hide(); 
      } 
     }); 
    } 
}); 

Antwort

0

Schuss im Dunkel hier, aber ich werde ein paar Vorschläge machen: 1. Gibt es noch andere Anfragen, die vor Ihren blockiert sind? Manchmal installieren Benutzer Ad-Blocker, Datenschutz-Plugins usw., die die nachfolgenden Anforderungen vom Herunterladen blockieren, und dies gilt insbesondere, da Ajax-Aufrufe später stattfinden. 2. Safari hat einen Fehler (ehm, Leistungsverbesserung), der nur blockiert, wenn Sie mehr als eine gleichzeitige Ajax-Anfrage haben. Wenn Sie lange Polling oder etwas blockiert haben, wird Ihre Anfrage ebenfalls blockiert. (Ich hatte große Probleme damit auf iOS6, nicht sicher, ob es seitdem behoben wurde)