多个中止的Ajax调用等待IE

时间:2016-11-10 16:06:26

标签: javascript c# jquery ajax internet-explorer

编辑 - 问题解决: 它最终成为服务器端问题。以下评论中的更多细节。

我的网页允许用户根据参数更新图表。当用户更改选择(检查/取消选中选项)时,将通过Ajax调用更新图表。

当用户快速检查/取消选中选项时,会出现问题。当它发生时,我确保当前请求被中止并且创建一个新请求。这是我的简化代码:

function refreshGraph() {
    // Abort current running request (if any)
    var currentlyLoading = (xhrDashboard != null && xhrDashboard !== undefined);
    if (currentlyLoading) {
        xhrDashboard.onreadystatechange = null;
        xhrDashboard.abort();
    }

    // Ajax call.
    var ajaxParams = {
        url: '/Dashboard/ReadyMix/GraphPartial',
        data: parameters,
        traditional: true,
        cache: false,
        type: 'POST',
        success: function (responseData) {
            $(".graphContainer").html(responseData);
        },
        error: function (xhr, text_status, error_thrown) {
            $(".graphZone").html("Error during loading...");
        },
        complete: function (xhr) {
            xhrDashboard = null;
        }
    };
    xhrDashboard = $.ajax(ajaxParams);
}

在Chrome中,我得到了预期的行为。第一个(或最新的)呼叫被取消,无论用户在短时间内做出多少更改,都会进行新的呼叫(例如:5秒内的选项会在几秒钟内发生变化)。

Internet Explorer(在多台计算机上测试的版本11)从我更快地更改选项到中止2请求并启动第3个请求的那一刻开始等待。在调试(Visual Studio)中启动我的应用程序时,它工作正常,但只要我将它放在我们的沙盒服务器上就会出现问题。

以下是Chrome(沙盒服务器)的屏幕截图 Chrome network screenshot when aborting ajax requests then making a new one

现在这里是IE卡在“等待”的屏幕截图 IE network screenshot when stuck on waiting after aborted ajax requests

任何建议都将不胜感激。

0 个答案:

没有答案