Jquery.Ajax()方法会阻塞网页?

hgamezoom 2013-02-05 04:26:29
我在网页中点击按钮,调用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的默认行为吗?有没有什么办法可以解决此问题?我希望的是实现当用户点击其他链接时,能够放弃掉当前请求直接跳转到其他页面。

...全文
457 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
未知数 2013-02-06
  • 打赏
  • 举报
回复
你把服务端都阻塞了,当然不能响应请求,这和ajax有什么关系? 你把链接的地址写成http://www.baidu.com之类的,不要用你自己的(因为你的服务端已经废掉),肯定就可以跳转了
Kilin_Zhang 2013-02-06
  • 打赏
  • 举报
回复
楼主的写法,客户端肯定不会被堵。
BorisHuai 2013-02-05
  • 打赏
  • 举报
回复
在你的代码后面加上alert(1);看看是否执行就知道是否被阻塞了。
fzfei2 2013-02-05
  • 打赏
  • 举报
回复
你有加 async: true, //异步请求,不会是Ajax问题 1,可能是你JS,checkAndShowAjaxResult 或其它地方 2,由访问text.ashx,引起后台被阻塞了
hgamezoom 2013-02-05
  • 打赏
  • 举报
回复
引用 3 楼 datiexiong 的回复:
引用 楼主 hgamezoom 的回复:我在网页中点击按钮,调用Jquery方法如下: $.ajax( { type: "post", url: "test.ashx", contentType: 'application/x-www-form……
我ajax请求的是text.ashx,而我网页上点击其他链接比如A.aspx或者B.aspx,都会被阻塞,直到请求完成之后才会跳转,这个就让我无法理解了……
hgamezoom 2013-02-05
  • 打赏
  • 举报
回复
引用 1 楼 bbjbepzz 的回复:
是不是你这个方法执行时间太长了checkAndShowAjaxResult。异步的不会阻塞的。
我被阻塞的时候还没有到success,不会执行该方法。
爱若如梦 2013-02-05
  • 打赏
  • 举报
回复
引用 楼主 hgamezoom 的回复:
我在网页中点击按钮,调用Jquery方法如下: $.ajax( { type: "post", url: "test.ashx", contentType: 'application/x-www-form-urlencoded;utf-8', ……
应该是后台被阻塞了,后台处理也是有队列的,先处理先来的请求再处理后面的,如果能改成多线程或者改变处理策略,可以更好些。 试试链接的地址和按钮触发的请求是与ajax不同的url试试。
xiaofan_sap 2013-02-05
  • 打赏
  • 举报
回复
建议:一部请求已经发出去了,不好控制了。可以把你的这个一部请求封装起来,setTimeout(ajaxMethod(){},30000);这样 设置一个全局变量,isSubmit,如果在这个三十秒内 有其他点击发生,就设置isSumit=false。 这个状态变量的作用 就是 方法ajaxmethod(){if(isSubmit){你的异步调用}}来控制。还有 你目前的调用 30秒延迟 没有道理阻塞啊
bbjbepzz 2013-02-05
  • 打赏
  • 举报
回复
是不是你这个方法执行时间太长了checkAndShowAjaxResult。异步的不会阻塞的。

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧