我正在使用从中发送数据到服务器的Web应用程序。如果应用程序没有互联网连接,则应禁用发送数据的选项。如果您在线,从浏览器中检查的最快方法是哪一种?我使用了navigator.onLine
,但它不可靠,因为不同的浏览器对它的解释不同。我的另一个解决方案是在服务器上放置一些纯文件,并在发送前每次尝试到达它。代码是这样的:从浏览器中检查连接状态的最快方法
function serverReachable() {
var x = new XMLHttpRequest(),
s;
x.open(
"HEAD",
'http://servername/client/keepalive.txt',
false
);
try {
x.send();
s = x.status;
return (s >= 200 && s < 300 || s === 304);
} catch (e) {
return false;
}
}
功能serverReachable()做的工作,但有没有更快的方式做到这一点(按时间没有代码量方面更快我的意思是更快)?
navigator.onLine通过浏览器有不同的解释。例如,只要我们将它放在离线模式下,Firefox和IE都将返回false,而不管我们是否连接到网络。 – Onitsuka
是的,你是对的,我建议你做同样的检查发送Ajax到服务器,但不要使用你自己的服务器,使用更快速的CDN服务器作为jQuery或S3/CloudFront,这样你可以得到更快的响应,并且如果服务器停机,请不要担心服务器。 –