新聞中心
有時(shí)候,我們需要知道當(dāng)前網(wǎng)絡(luò)的狀態(tài)來做一些事情,以提升用戶體驗(yàn),這節(jié)課,我們來看一下,如何使用 JavaScript 來檢測(cè)用戶是否在線。

簡(jiǎn)陽網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
檢測(cè)連接狀態(tài)
我們可以利用navigator.onLine API來檢測(cè)連接狀態(tài),它返回一個(gè)布爾值來表示用戶是否在線。
注意:請(qǐng)注意各瀏覽器的實(shí)現(xiàn)方式不同,因此結(jié)果可能不同。
window.addEventListener('load', () => {
const status = navigator.onLine;
});這種方式,我們不知道加載后網(wǎng)絡(luò)狀態(tài)是否發(fā)生變化,這并不理想。
我們可以訂閱 offline? 和 online
window.addEventListener('offline', (e) => {
console.log('offline');
});
window.addEventListener('online', (e) => {
console.log('online');
});事例
我們通過一個(gè)背景色的變化來演示當(dāng)前的網(wǎng)絡(luò)狀態(tài):
You're offline
You're connected
對(duì)應(yīng)的 css:
.status {
background: #efefef;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
div {
padding: 1rem 2rem;
font-size: 3rem;
border-radius: 1rem;
color: white;
font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.online-msg {
background: green;
display: block;
}
.offline-msg {
background: red;
display: none;
}
}默認(rèn)情況下,顯示在線信息。然后我們添加一個(gè)條件,如果狀態(tài)元素有一個(gè) offline 類,我們就切換這兩個(gè)div。
.status {
&.offline {
.online-msg {
display: none;
}
.offline-msg {
display: block;
}
}
}那么,我們?nèi)绾胃鶕?jù)網(wǎng)絡(luò)狀態(tài)來切換呢:
const status = document.querySelector('.status');
window.addEventListener('load', () => {
const handleNetworkChange = () => {
if (navigator.onLine) {
status.classList.remove('offline');
} else {
status.classList.add('offline');
}
};
window.addEventListener('online', handleNetworkChange);
window.addEventListener('offline', handleNetworkChange);
});代碼很簡(jiǎn)單,這里就不過多的介紹了。
事例地址:https://codepen.io/rebelchris/pen/PoaQjqr
原文:https://dev.to/dailydevtips1/detecting-if-the-user-is-online-with-javascript-58ne
文章標(biāo)題:用JavaScript檢測(cè)用戶是否在線
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/cdocogo.html


咨詢
建站咨詢
