亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript實現(xiàn)獲取設備網(wǎng)絡連接信息

 更新時間:2023年05月25日 09:36:59   作者:JetTsang  
作為前端開發(fā),做好用戶體驗是很重要的,日常開發(fā)中我們經(jīng)??梢杂龅接脩艟W(wǎng)速慢導致靜態(tài)資源加載慢,從而給影響用戶體驗,所以本文來和大家分享一個有趣的API,可以實現(xiàn)獲取網(wǎng)絡信息

前言

作為前端開發(fā),做好用戶體驗是很重要的,日常開發(fā)中我們經(jīng)??梢杂龅接脩艟W(wǎng)速慢導致靜態(tài)資源加載慢,從而給影響用戶體驗。這里有一種優(yōu)化思路,我們可以通過JS來獲取網(wǎng)絡信息,比方說使用的是WI-FI還是蜂窩,下載速度大致是多少呀?來達到優(yōu)化的目的,下面介紹這樣一個API

介紹

Navigator.connection是一個只讀的對象,它會提供一個一個 NetworkInformation 對象來獲取設備的網(wǎng)絡連接信息。例如用戶設備的當前帶寬或連接是否被計量,這可以用于基于用戶的連接來選擇高清晰度內(nèi)容或低清晰度內(nèi)容。

使用方法

const connectionInfo:NetworkInformation = navigator.connection

NetworkInformation定義

type NetworkInformation = {
    readonly downlink:number  // Mbps
    readonly effectiveType: EffectiveConnectionType
    onchange: EventHandler
    readonly rtt:number // round trip time --> ms
}
// 每一個定義的枚舉類型都有對應的參數(shù)范圍的要求
enum EffectiveConnectionType {
  "2g",
  "3g",
  "4g",
  "slow-2g"
};

How to use

// Get the connection type. 
var type = navigator.connection.type; 
// Get an upper bound on the downlink speed of the first network hop
var downlink = navigator.connection.downlink; 
function changeHandler(e) { 
// Handle change to connection here. 
} 
// Register for event changes. 
navigator.connection.onchange = changeHandler;
// Alternatively. 
navigator.connection.addEventListener('change', changeHandler);

這是一個實驗性的API,它的適用范圍:

在項目中使用

Vue

// 在組件掛載完畢
onMounted(() => {
    const effectiveType = navigator.connection.effectiveType
    switch (effectiveType) {
        case '4g':
            // 加載高質(zhì)量資源
            this.imgSrc = higherSrc
            break;
        case '3g':
            // 加載稍低質(zhì)量資源
            this.imgSrc = lowerSrc
            break;
        case '2g':
            // ...
            break;
        default:
            //...
            break;
    }
})

React

// 在組件掛載完畢后,只需執(zhí)行一次
useEffect(()=>{
    const effectiveType = navigator.connection.effectiveType
    switch (effectiveType) {
        case '4g':
            // 加載高質(zhì)量資源
            setImgsrc(higherSrc)
            break;
        case '3g':
            // 加載稍低質(zhì)量資源
            setImgsrc(lowerSrc)
            break;
        case '2g':
            // ...
            break;
        default:
            //...
            break;
    }
},[])

總結(jié)

這個API可以根據(jù)用戶的網(wǎng)速,來加載對應質(zhì)量的資源,從而為用戶帶來更好的體驗,需要注意的是,這是一個實驗性質(zhì)的API,支持的瀏覽器版本有限,使用的時候可以作為漸進增強來提高用戶體驗。

參考資料

Navigator.connection

Network Information API

以上就是JavaScript實現(xiàn)獲取設備網(wǎng)絡連接信息的詳細內(nèi)容,更多關(guān)于JavaScript獲取網(wǎng)絡信息的資料請關(guān)注腳本之家其它相關(guān)文章

相關(guān)文章

最新評論