日期:2014-05-16  浏览次数:20491 次

Jquery.Ajax()方法会阻塞网页?
我在网页中点击按钮,调用Jquery方法如下:
$.ajax(
            {
                type: "post",
                url: "test.ashx",
                contentType: 'application/x-www-form-urlencoded;utf-8',
                async: true,  //异步请求
             },
                success: function (result) {
                    checkAndShowAjaxResult(result);
                }
                ,
                error: function (msg)
                { alert('error'); }

            });


我在被调用的页面test.ashx中的page_load里延时30秒,这样这个ajax请求直到30秒后才会收到返回数据,但是在这30秒之中,我点击了其他链接<a href>,或者页面上的其他按钮,全都会失去响应,一直要等到这个ajax请求返回之后才会响应,也就是被阻塞了。在IE和chrome中都是如此。

这个是jquery的默认行为吗?有没有什么办法可以解决此问题?我希望的是实现当用户点击其他链接时,能够放弃掉当前请求直接跳转到其他页面。


------解决方案--------------------
你有加  async: true,  //异步请求,不会是Ajax问题
1,可能是你JS,checkAndShowAjaxResult 或其它地方 
2,由访问text.ashx,引起后台被阻塞了
------解决方案--------------------
你把服务端都阻塞了,当然不能响应请求,这和ajax有什么关系?
你把链接的地址写成http://www.baidu.com之类的,不要用你自己的(因为你的服务端已经废掉),肯定就可以跳转了