2016-03-25 3 views
0

Я столкнулся с довольно странной ошибкой. По определенному запросу AJAX Safari зависает для точно 60 секунд, после чего отображаются данные, возвращенные запросом. Один человек утверждает, что он полностью отключает его Safari (как настольный, так и мобильный). Это не происходит ни в одном другом браузере. Кажется, ничего особенного в этом запросе пока не происходит. Там 4 возможных значения для $(this).attr('data-lb-daysago') - 7, 30, 90, 180. Проблема возникает только с 30. Вот код:AJAX запрашивает зависания 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(); 
      } 
     }); 
    } 
}); 

ответ

0

Выстрел в темноте здесь, но я сделаю несколько предложений: 1. Остаются ли какие-либо другие запросы перед вашим? Иногда пользователи устанавливают блокировщики рекламы, плагины конфиденциальности и т. Д., Которые блокируют последующие запросы от загрузки, и это особенно верно, поскольку звонки Ajax происходят позже. 2. У Safari есть ошибка (ehm, повышение производительности), которая просто блокируется, когда у вас есть несколько одновременных запросов Ajax, поэтому, если у вас длинный опрос или что-то заблокированное, ваш запрос также будет заблокирован. (У меня были большие проблемы с этим на iOS6, не уверен, что он был исправлен с тех пор)

Смежные вопросы