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

簡陽網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)公司。
檢測連接狀態(tài)
我們可以利用navigator.onLine API來檢測連接狀態(tài),它返回一個布爾值來表示用戶是否在線。
注意:請注意各瀏覽器的實現(xiàn)方式不同,因此結果可能不同。
window.addEventListener('load', () => {
const status = navigator.onLine;
});這種方式,我們不知道加載后網(wǎng)絡狀態(tài)是否發(fā)生變化,這并不理想。
我們可以訂閱 offline? 和 online
window.addEventListener('offline', (e) => {
console.log('offline');
});
window.addEventListener('online', (e) => {
console.log('online');
});事例
我們通過一個背景色的變化來演示當前的網(wǎng)絡狀態(tài):
You're offline
You're connected
對應的 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;
}
}默認情況下,顯示在線信息。然后我們添加一個條件,如果狀態(tài)元素有一個 offline 類,我們就切換這兩個div。
.status {
&.offline {
.online-msg {
display: none;
}
.offline-msg {
display: block;
}
}
}那么,我們?nèi)绾胃鶕?jù)網(wǎng)絡狀態(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);
});代碼很簡單,這里就不過多的介紹了。
事例地址:https://codepen.io/rebelchris/pen/PoaQjqr
原文:https://dev.to/dailydevtips1/detecting-if-the-user-is-online-with-javascript-58ne
分享題目:用JavaScript檢測用戶是否在線
標題URL:http://m.5511xx.com/article/cdocogo.html


咨詢
建站咨詢
