Ajax ABORT导致Django errno 10053 - 已建立的连接被主机中的软件中止

时间:2016-11-25 08:26:37

标签: ajax django

我有一个网页(后端的Django 1.9,Apache服务器),带有一个包含大量数据集和列过滤器的无限分页表。当用户激活一个过滤器(让我们表示 CHOICE 1 ),然后立即改变主意重置过滤器(让我们将其称为 CHOICE 2 ),我想告诉Ajax放弃等待对CHOICE 1的后端响应,然后继续发布并等待CHOICE 2请求。为此,我有以下JS代码:

// AJAX_GET_REQUEST is a global variable
AJAX_GET_REQUEST= $.ajax(
    {
        type:'GET',
        url:"/my_url/",
        beforeSend : function()
        {           
            if (AJAX_GET_REQUEST!= null)
                AJAX_GET_REQUEST.abort();
        },
        data:data,  
        success: function(response) 
        {
            // Do something
        }
    });

精细。我曾经认为我实现了成功取消不相关请求的目标,但我发现AJAX_GET_REQUEST.abort();导致Django错误[Errno 10053] An established connection was aborted by the software in your host machine。有趣的想法是,这不是一个“致命的错误”,因为应用程序没有终止,而是我的分页表加载需要数年。 Django似乎重新激活连接本身并继续处理最后的请求。终于等了很久之后,我在前端看到了正确的结果。如果我删除了AJAX_GET_REQUEST.abort();行,一切都很好,但我必须等到Django通过无关的请求,直到它继续处理最后一个相关请求。 有什么出路吗?是否可以中止以前的请求,避免这个恼人的10053错误?

0 个答案:

没有答案