$.ajax 执行时如何判断网络是否断线?

$.ajax({url:“这里是处理页面地址...”,async:true,type:"post",data:_param,success:function(msg){a... $.ajax({
url:“这里是处理页面地址...”,
async:true,
type:"post",
data:_param,
success:function(msg){
alert("ajax执行成功:"+msg);
},
error:function(msg){
alert("ajax执行失败:"+msg.message);
}
});

//现在有一个现象就是:当网络突然断线了,在执行此段代码时,不会出现任何提示,请问如何判断当前网络不通畅??? 求解~ 或者用其他办法也可以,只要判断是否断线就好!~ 最好要兼容所有浏览器 !~
展开
 我来答
xiii130
2013-09-09 · 知道合伙人软件行家
xiii130
知道合伙人软件行家
采纳数:817 获赞数:2867
爱好编程,在工作中积累了比较丰富的经验。愿与大家共同进步。

向TA提问 私信TA
展开全部

我觉得上面的回答,理论上可行,但是实际操作时不靠谱


每次请求之前都还要想后台请求一次,开销问题不容小觑


而且实际上,你也不能保证上次请求成功了就代表这次请求时还是保持网络畅通


我的解决方案是设置一个ajax的执行时间


如果网络拥堵或断开时,客户端这头超过了规定时间即提示用户


$.ajax({    
    url: "xxx",
    //1秒后超时    
    timeout: 1000,    
    error: function (xmlHttpRequest, error) {        
    //提示超时或操作失败
    }
});

 

你用的本身就是jquery的框架,只要版本高,就不会出现兼容性问题

追问
你这个办法可以试试!~
0c4d
2013-09-09 · TA获得超过103个赞
知道答主
回答量:72
采纳率:0%
帮助的人:64.6万
展开全部
这个可以换个思路,任何请求之前,执行一个动作:IsNetOk();该动作访问后台,后台获取后,直接返回参数:true,如果规定时间内没有接受到请求,则说明网络有问题。这个时间可以设置为1-3秒
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cs903016
2013-09-09 · TA获得超过1179个赞
知道小有建树答主
回答量:2599
采纳率:80%
帮助的人:1725万
展开全部
写原始的ajax方法,里面有status!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式