js_判断当前页面是否有网络和网络连接超时

2018-04-12

方法一:通过navigator.onLine属性判断,返回true为有联网状态,false为断网状态。

1 //方法一
2 if(navigator.onLine) {
3     console.log('联网状态');
4 } else {
5     console.log('断网状态');
6 };

 

 

方法二:通过请求后台接口返回error错误码,判断网络是否在联网,这里返回的有可能是连不上服务器(断网状态),也有可能是服务器出问题没有数据返回。

 1 //方法二
 2 function ajax(url, data, callback) {
 3     url = location.protocol + '//' + location.host + url,
 4         $.ajax({
 5             url: url,
 6             data: data,
 7             dataType: "json",
 8             type: "post",
 9             success: function(res) {
10                 console.log('成功回调数据!');
11             },
12             error: function() {
13                 console.log('网络连接失败!');
14             }
15         });
16 };

 

方法一确切的可以判断是否是联网状态,方法二不一定是没有网络的导致的,但问题的根源都是用户在操作页面的时候,和后台交互不成功给用户反馈。这两者

结合使用,就可以组成一个无网络状态和网络请求超时的情况,从而友好的提示用户。

 1 function ajax(url, data, callback) {
 2     url = location.protocol + '//' + location.host + url,
 3         $.ajax({
 4             url: url,
 5             data: data,
 6             dataType: "json",
 7             type: "post",
 8             success: function(res) {
 9                 console.log('成功回调数据!');
10             },
11             error: function() {
12                 if(navigator.onLine) {
13                         console.log('网络连接失败!');
14                     } else {
15                         console.log('网络连接超时!');
16                     };
17             }
18         });
19 };

 

posted @ 2018-04-12 19:01  幽谷兰花  阅读(2135)  评论(0编辑  收藏  举报