如何取消jQuery加载

mar*_*nda 5 jquery load asp-classic

我的问题是我的主页通过jQuery将一些慢的asp页面加载到我的div中:

$("#content").load("really_slow.asp");
Run Code Online (Sandbox Code Playgroud)

但是如果我在ASP页面完成之前点击一个链接尝试访问我网站上的另一个页面,它将不会让我离开,直到它完成加载.

我尝试了几种方法,但似乎没有任何工作......我尝试过这样的事情:

var request = $.ajax({
    type: 'GET',
    url: 'really_slow.asp',
    success: function(result){
        $("#content").html(result);
    }
});


$("a").click(function() { 
    request.abort();
});
Run Code Online (Sandbox Code Playgroud)

没有区别......

gil*_*ly3 1

这不是 jQuery - 请参阅此演示:http ://jsfiddle.net/H6j4k/1/

所以一定是IIS。如果您一次加载多个 asp 页面,则可能是 IIS 太忙于处理这些请求而无法处理下一个页面。中止 AJAX 请求不会导致 IIS 停止处理该请求 - 它只是停止浏览器等待响应。

尝试向您的页面添加外部链接并导航至该页面。还可以尝试在浏览器中打开一个新选项卡并尝试访问您的服务器。如果您能够导航到外部页面,特别是如果您无法访问您的服务器,即使在新选项卡中,则很明显 IIS 是您的瓶颈。如果是这种情况,那么是时候重新构建您的代码了,这样您就可以通过发出更少的并发请求来获得结果。可以通过一次发出一个请求或组合请求来实现这一点,这样您就可以一次性获取所有数据。