日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

通過JS獲取你當前的網絡狀況?建議大家學一學

來源: 責編: 時間:2024-04-19 09:30:30 260觀看
導讀前言大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心。檢測網速想要在Web端檢測網速,其實很簡單,有一個全局的對象——navigation,我們來看看它的身上都有哪些東西:圖片屬性描述

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心。cEB28資訊網——每日最新資訊28at.com

檢測網速

想要在Web端檢測網速,其實很簡單,有一個全局的對象——navigation,我們來看看它的身上都有哪些東西:cEB28資訊網——每日最新資訊28at.com

圖片圖片cEB28資訊網——每日最新資訊28at.com

屬性cEB28資訊網——每日最新資訊28at.com

描述cEB28資訊網——每日最新資訊28at.com

類型cEB28資訊網——每日最新資訊28at.com

downlinkcEB28資訊網——每日最新資訊28at.com

有效帶寬估算(單位:兆比特/秒)cEB28資訊網——每日最新資訊28at.com

numbercEB28資訊網——每日最新資訊28at.com

effectiveTypecEB28資訊網——每日最新資訊28at.com

effectiveTypecEB28資訊網——每日最新資訊28at.com

slow-2g/2g/3g/4gcEB28資訊網——每日最新資訊28at.com

rttcEB28資訊網——每日最新資訊28at.com

當前連接下評估的往返時延cEB28資訊網——每日最新資訊28at.com

numbercEB28資訊網——每日最新資訊28at.com

saveDatacEB28資訊網——每日最新資訊28at.com

用戶代理是否設置了減少數據使用的選項cEB28資訊網——每日最新資訊28at.com

booleancEB28資訊網——每日最新資訊28at.com

useNetwork

我們可以自定義一個hook,用來獲取網頁當前的網絡狀態~需要具備以下要素:cEB28資訊網——每日最新資訊28at.com

1、返回的數據所需的ts類、監聽網絡變化的enumcEB28資訊網——每日最新資訊28at.com

2、獲取網絡狀態cEB28資訊網——每日最新資訊28at.com

3、監聽網絡變化,并實時更新最新的網絡狀態cEB28資訊網——每日最新資訊28at.com

第一步:所需的ts類型

說說NetworkState的各個參數:cEB28資訊網——每日最新資訊28at.com

  • since:記錄當時檢測的時間
  • oline:記錄是否有網絡
  • rtt:記錄時延
  • downlink:記錄帶寬
  • saveData:記錄用戶代理是否設置了減少數據使用
  • effectiveType:網絡連接類型
// hook返回的值interface NetworkState {  since?: Date;  online?: boolean;  rtt?: number;  downlink?: number;  saveData?: boolean;  effectiveType?: string;}// 監聽網絡變化的事件名enumenum NetworkEventType {  ONLINE = 'online',  OFFLINE = 'offline',  CHANGE = 'change',}

第二步:獲取網絡狀態

function getConnection() {  const nav = navigator as any;  if (typeof nav !== 'object') return null;  return nav.connection || nav.mozConnection || nav.webkitConnection;}function getConnectionProperty(): NetworkState {  const c = getConnection();  if (!c) return {};  return {    rtt: c.rtt,    saveData: c.saveData,    downlink: c.downlink,    effectiveType: c.effectiveType,  };}

第三步:實時更新網絡狀態

unction useNetwork(): NetworkState {  const [state, setState] = useState(() => {    return {      since: undefined,      online: navigator?.onLine,      ...getConnectionProperty(),    };  });  useEffect(() => {    const onOnline = () => {      setState((prevState) => ({        ...prevState,        online: true,        since: new Date(),      }));    };    const onOffline = () => {      setState((prevState) => ({        ...prevState,        online: false,        since: new Date(),      }));    };    const onConnectionChange = () => {      setState((prevState) => ({        ...prevState,        ...getConnectionProperty(),      }));    };    window.addEventListener(NetworkEventType.ONLINE, onOnline);    window.addEventListener(NetworkEventType.OFFLINE, onOffline);    const connection = getConnection();    connection?.addEventListener(NetworkEventType.CHANGE, onConnectionChange);    return () => {      window.removeEventListener(NetworkEventType.ONLINE, onOnline);      window.removeEventListener(NetworkEventType.OFFLINE, onOffline);      connection?.removeEventListener(NetworkEventType.CHANGE, onConnectionChange);    };  }, []);  return state;}

完整代碼

import { useEffect, useState } from 'react';export interface NetworkState {  since?: Date;  online?: boolean;  rtt?: number;  downlink?: number;  saveData?: boolean;  effectiveType?: string;}enum NetworkEventType {  ONLINE = 'online',  OFFLINE = 'offline',  CHANGE = 'change',}function getConnection() {  const nav = navigator as any;  if (typeof nav !== 'object') return null;  return nav.connection || nav.mozConnection || nav.webkitConnection;}function getConnectionProperty(): NetworkState {  const c = getConnection();  if (!c) return {};  return {    rtt: c.rtt,    saveData: c.saveData,    downlink: c.downlink,    effectiveType: c.effectiveType,  };}function useNetwork(): NetworkState {  const [state, setState] = useState(() => {    return {      since: undefined,      online: navigator?.onLine,      ...getConnectionProperty(),    };  });  useEffect(() => {    const onOnline = () => {      setState((prevState) => ({        ...prevState,        online: true,        since: new Date(),      }));    };    const onOffline = () => {      setState((prevState) => ({        ...prevState,        online: false,        since: new Date(),      }));    };    const onConnectionChange = () => {      setState((prevState) => ({        ...prevState,        ...getConnectionProperty(),      }));    };    window.addEventListener(NetworkEventType.ONLINE, onOnline);    window.addEventListener(NetworkEventType.OFFLINE, onOffline);    const connection = getConnection();    connection?.addEventListener(NetworkEventType.CHANGE, onConnectionChange);    return () => {      window.removeEventListener(NetworkEventType.ONLINE, onOnline);      window.removeEventListener(NetworkEventType.OFFLINE, onOffline);      connection?.removeEventListener(NetworkEventType.CHANGE, onConnectionChange);    };  }, []);  return state;}export default useNetwork;


cEB28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-84045-0.html通過JS獲取你當前的網絡狀況?建議大家學一學

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Prism:打造WPF項目的MVVM之選,簡化開發流程、提高可維護性

下一篇: 探索C++:十大讓代碼簡潔的特性

標簽:
  • 熱門焦點
  • CSS單標簽實現轉轉logo

    轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個大新聞是Meta AI推出了新的開源授權的大型語言模型Llama 2。這是一項非常重要的進展:Llama 2可免費用于研究和商業用途。(幾小時前,swyy發現它已從LLaMA 2更名為Lla
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的“網紅”。7月5日至9日,為期5天的東方甄選“甘肅行”首次在自有App內直播,
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • 三星電子Q2營收60萬億韓元 存儲業務營收同比仍下滑超過50%

    7月27日消息,據外媒報道,從三星電子所發布的財報來看,他們主要利潤來源的存儲芯片業務在今年二季度仍不樂觀,營收同比仍在大幅下滑,所在的設備解決方案
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • iQOO Neo8 Pro搶先上架:首發天璣9200+ 安卓性能之王

    經過了一段時間的密集爆料,昨日iQOO官方如期對外宣布:將于5月23日推出全新的iQOO Neo8系列新品,官方稱這是一款擁有旗艦級性能調校的作品。隨著發布時
  • Meta盲目擴張致超萬人被裁,重金押注元宇宙而前景未明

    圖片來源:圖蟲創意日前,Meta創始人兼CEO 馬克·扎克伯發布公開信,宣布Meta計劃裁員超11000人,占其員工總數13%。他公開承認了自己的預判失誤:“不僅
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久av一区二区三区漫画| 亚洲高清免费| 欧美日韩国产不卡在线看| 欧美日韩亚洲一区在线观看| 国产精品大片wwwwww| 午夜精品成人在线| 久久久www| 欧美激情中文字幕乱码免费| 久久久久久亚洲精品不卡4k岛国| 久久久噜噜噜久噜久久| 欧美精品v国产精品v日韩精品| 欧美三级视频| 国产在线麻豆精品观看| 国产精品爽爽ⅴa在线观看| 韩国一区二区三区美女美女秀| 亚洲国产欧洲综合997久久| 亚洲视频在线观看免费| 久久国产精品99久久久久久老狼| 欧美成人精品激情在线观看| 欧美色视频在线| 韩国一区电影| 亚洲午夜极品| 欧美成年人网站| 国产精品sss| 在线成人亚洲| 亚洲一二三四久久| 久久综合狠狠综合久久综合88| 久久高清免费观看| 欧美福利视频| 国产一区二区三区久久| 99在线观看免费视频精品观看| 亚洲高清影视| 午夜免费在线观看精品视频| 欧美福利影院| 国产一区二区成人久久免费影院| 99视频在线精品国自产拍免费观看 | 国产精品国产三级国产专播精品人 | 国产精品一区二区你懂的| 亚洲国产精品一区二区www| 亚洲一区美女视频在线观看免费| 日韩一级精品| 久久精品一区二区| 国产精品不卡在线| 91久久精品国产91性色 | 欧美视频在线观看视频极品| 精久久久久久| 亚洲品质自拍| 欧美一区2区三区4区公司二百 | 欧美视频在线观看免费网址| 亚洲激情一区二区三区| 欧美自拍丝袜亚洲| 欧美小视频在线| 亚洲精品一二| 亚洲天堂av综合网| 欧美+亚洲+精品+三区| 国产无一区二区| 亚洲视频一二| 欧美人交a欧美精品| 欧美日韩在线视频一区| 在线视频国内自拍亚洲视频| 91久久久久久久久| 久久精品日产第一区二区| 国产精品亚洲综合久久| 亚洲性视频网址| 欧美日韩精品一区二区在线播放| 亚洲国产日韩在线一区模特| 久久久久久久国产| 国产专区欧美专区| 欧美在线播放| 欧美成人午夜剧场免费观看| 国内久久视频| 久久久久在线| 欧美日韩一区二区三区在线看| 在线日韩中文| 久久综合网hezyo| 黑人巨大精品欧美一区二区| 久久成人亚洲| 韩国久久久久| 久久久精品一区| 狠狠色狠狠色综合| 久久久久久久网站| 激情伊人五月天久久综合| 久久久国产精品亚洲一区| 国内精品久久久久伊人av| 久久精品一二三| 激情综合色综合久久| 久久在线91| 亚洲国产精品va在线看黑人| 亚洲专区一区| 国产精品国产自产拍高清av| 亚洲一区在线播放| 国产精品色午夜在线观看| 亚洲欧美日韩网| 国产欧美视频一区二区三区| 久久久www成人免费无遮挡大片| 国产一区二区三区四区hd| 久久人人97超碰精品888| 亚洲福利电影| 欧美日韩ab片| 亚洲综合色视频| 国产一区二区三区日韩欧美| 麻豆精品传媒视频| 亚洲精品中文字幕在线观看| 久久精品亚洲精品国产欧美kt∨| 国产亚洲一本大道中文在线| 99精品国产在热久久| 欧美精品一区二区在线观看| 亚洲最新视频在线播放| 欧美性色综合| 欧美在线免费一级片| 一区精品在线播放| 欧美电影电视剧在线观看| 一区二区三欧美| 国产伦精品一区二区三区视频黑人| 久久成人免费| 亚洲激情成人网| 欧美吻胸吃奶大尺度电影| 欧美一区二区网站| 国产精品久久久久影院亚瑟 | 国产亚洲欧美一区二区三区| 久久天堂成人| 99riav1国产精品视频| 国产精品男女猛烈高潮激情| 久久精品99国产精品酒店日本| 亚洲国产欧美在线| 国产精品久久久久久久第一福利| 久久爱www| 亚洲伦伦在线| 国产丝袜一区二区三区| 欧美丰满少妇xxxbbb| 亚洲综合色在线| 在线日韩av片| 国产精品久久久久久久午夜片| 久久免费观看视频| 一本大道av伊人久久综合| 国产亚洲一区二区三区在线观看 | 激情婷婷欧美| 国产精品国产自产拍高清av王其| 久久亚洲精品一区二区| 亚洲视频一区在线观看| 国产综合亚洲精品一区二| 欧美日韩国产麻豆| 久久久999精品视频| 日韩视频在线免费| 国内一区二区三区在线视频| 欧美日韩亚洲一区二| 久久久夜夜夜| 亚洲在线观看免费视频| 亚洲国产一区二区三区高清| 国产精品永久免费在线| 欧美区一区二| 一区二区三区日韩欧美精品| 国产欧美日韩综合| 欧美午夜一区二区| 理论片一区二区在线| 亚洲欧美日韩中文视频| 亚洲国内自拍| 国内成人精品一区| 国产精品福利在线观看网址| 欧美1区2区3区| 欧美一区在线看| 中文有码久久| 91久久精品国产91久久性色| 国产一区二区三区四区| 国产精品久久久久77777| 欧美激情小视频| 久热这里只精品99re8久| 欧美一区二区啪啪| 亚洲网站啪啪| 亚洲免费观看在线观看| 樱桃视频在线观看一区| 国产一区二区黄色| 国产精品一区免费视频| 欧美日韩精品欧美日韩精品| 男女精品视频| 久久夜色精品国产亚洲aⅴ | 一区二区三区欧美视频| 亚洲破处大片| 在线免费观看日韩欧美| 国产一区二区在线观看免费播放| 国产精品白丝黑袜喷水久久久| 欧美精品一区二区视频 | 久久综合网色—综合色88| 久久aⅴ国产紧身牛仔裤| 亚洲女优在线| 亚洲一卡二卡三卡四卡五卡| 9久草视频在线视频精品| 亚洲人成欧美中文字幕| 亚洲福利视频一区| 经典三级久久| 激情丁香综合| 黄网站免费久久| 激情欧美国产欧美| 韩国免费一区| 精品av久久707| 一区二区在线视频| 伊人成人开心激情综合网| 激情文学综合丁香| 激情久久久久久| 在线观看国产欧美| 亚洲高清视频一区| 亚洲高清免费视频| 亚洲人成网站色ww在线| 亚洲精品视频啊美女在线直播|