JavaScript内置了navigator对象,其中有一个名为onLine的属性,可以用来检测用户是否在线。
当用户在线时,该属性的值为true,否则为false。
if(navigator.onLine){
console.log("用户在线");
}else{
console.log("用户离线");
}
除了使用navigator.onLine属性之外,还可以通过定时器定时检测网络连接状态。
可以使用XMLHttpRequest对象向服务器发送请求,如果请求成功,说明用户在线,否则说明用户离线。
function checkOnline(){
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://www.baidu.com', true);
xhr.timeout = 3000;
xhr.send();
xhr.onload = function(){
console.log("用户在线");
};
xhr.onerror = function(){
console.log("用户离线");
};
}
setInterval(checkOnline, 5000);
上述代码中,checkOnline()函数每隔5秒钟向百度服务器发送一个请求,如果请求成功,说明用户在线,否则说明用户离线。