AJAX请求挂起/崩溃Safari

时间:2016-03-25 15:03:30

标签: jquery ajax safari

我遇到了相当奇怪的错误。在某些AJAX请求后,Safari挂起完全 60秒,然后显示请求返回的数据。一个人声称它完全崩溃了他的Safari(桌面和移动)。这在任何其他浏览器中都不会发生。这个请求似乎没有什么特别之处,但它发生了。 $(this).attr('data-lb-daysago')有7个可能的值 - 7,30,90,180。问题只发生在30。 这是代码:

$('[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();
            }
        });
    }
});

1 个答案:

答案 0 :(得分:0)

在黑暗中拍摄,但我会提出一些建议: 1.在您之前是否还有其他要求被阻止?有时用户会安装阻止下载后续请求的广告拦截器,隐私插件等,尤其是因为Ajax调用稍后发生。 2. Safari有一个错误(ehm,性能增强),只有当你有多个并发Ajax请求时才会阻塞,所以如果你有长时间的轮询或阻止了你的请求,你的请求也会被阻止。 (我在iOS6上遇到了这个问题,不确定它是否已经修复)