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 };