使用JavaScript和網路資訊API進行自適應網路服務
根據網路速度進行不同的內容推送,比如網速速度慢就推送解析度低的圖片,這種自適應網路服務是使用專門的API實現。navigator.connection.effectiveType 可用於根據使用者網路連線的質量提供不同的內容。
effectiveType是Network Information API的一個屬性,透過navigator.connection物件向JavaScript公開。在Chrome中,您可以將以下內容放入DevTools以檢視有效的連線型別(ECT):
console.log(navigator.connection.effectiveType); // 4G
可能的值為effectiveType'slow-2g','2g','3g'或'4g'。在慢速連線上,此功能允許您透過提供較低質量的資源來提高頁面載入速度。
如何應對網路質量的變化?我們可以使用connection.onchange事件監聽器來監控連線變化:
effectiveType在Android上的Chrome,Opera和Firefox支援。其他的一些網路質量提示可在navigator.connection包括rtt,downlink和downlinkMax。
在Vue.js中,使用資料繫結,我們能夠將connection屬性設定為fast或者slow基於ECT值。大致是:
我們根據使用者的有效連線型別有條件地呈現不同的輸出(影片與低解析度影像)。
effectiveType是Network Information API的一個屬性,透過navigator.connection物件向JavaScript公開。在Chrome中,您可以將以下內容放入DevTools以檢視有效的連線型別(ECT):
console.log(navigator.connection.effectiveType); // 4G
可能的值為effectiveType'slow-2g','2g','3g'或'4g'。在慢速連線上,此功能允許您透過提供較低質量的資源來提高頁面載入速度。
如何應對網路質量的變化?我們可以使用connection.onchange事件監聽器來監控連線變化:
function onConnectionChange() { const { rtt, downlink, effectiveType, saveData } = navigator.connection; console.log(`Effective network connection type: ${effectiveType}`); console.log(`Downlink Speed/bandwidth estimate: ${downlink}Mb/s`); console.log(`Round-trip time estimate: ${rtt}ms`); console.log(`Data-saver mode on/requested: ${saveData}`); } navigator.connection.addEventListener('change', onConnectionChange) <p class="indent"> |
effectiveType在Android上的Chrome,Opera和Firefox支援。其他的一些網路質量提示可在navigator.connection包括rtt,downlink和downlinkMax。
在Vue.js中,使用資料繫結,我們能夠將connection屬性設定為fast或者slow基於ECT值。大致是:
if (/\slow-2g|2g|3g/.test(navigator.connection.effectiveType)) { this.connection = "slow"; } else { this.connection = "fast"; } <p class="indent"> |
我們根據使用者的有效連線型別有條件地呈現不同的輸出(影片與低解析度影像)。
<template> <div id="home"> <div v-if="connection === 'fast'"> <!-- 1.3MB video --> <video class="theatre" autoplay muted playsinline control> <source type="video/webm"> <source type="video/mp4"> </video> </div> <!-- 28KB image --> <div v-if="connection === 'slow'"> <img class="theatre" > </div> </div> </div> </template> <p class="indent"> |
相關文章
- [譯]使用 JavaScript 和網路資訊 API 實現自適應服務JavaScriptAPI
- 自適應模糊神經網路的設計神經網路
- 網際網路資訊服務安全檢查接收材料清單
- 使用retrofit進行網路請求
- 【工業網際網路】自適應的工業生態系統
- 規範網際網路資訊服務演算法推薦活動WIOT演算法
- 網際網路週刊:中國資訊APP綜合服務水平排行榜APP
- 《Linux防火牆(第4版)》——2.6 私有網路服務VS公有網路服務Linux防火牆
- 國家網際網路資訊辦公室釋出《區塊鏈資訊服務管理規定》區塊鏈
- 提供自動駕駛路況資訊採集服務自動駕駛
- “2017網際網路+政務服務論壇”在廣州舉行
- 使用Iperf工具進行網路效能測試
- 天下網商:手機網民網路應用使用率【資訊圖】
- 網路安全和網路發展需同步推進
- 網路拓撲—FTP服務搭建FTP
- 全球資訊網服務
- 利用進化方法自動生成神經網路:深度進化網路DENSER神經網路
- fiddler進行修改網路進行弱網測試
- Linux下cifs公用網際網路系統和samba服務LinuxSamba
- 運營商服務如何網際網路化?
- 網際網路服務沒有免費午餐
- 每日安全資訊:國家網際網路應急中心開通勒索病毒免費查詢服務
- 怎樣利用網際網路差異化進行網路推廣?
- 使用.NET進行高效率網際網路敏捷開發的思考和探索敏捷
- 使用JavaScript實現機器學習和神經學網路JavaScript機器學習
- Java使用代理進行網路連線方法示例Java
- “網際網路+”將引爆哪些行業?–資訊圖行業
- “網際網路+”將引爆哪些行業?——資訊圖行業
- 青雲QingCloud推出SDN網路直通服務Docker網路能力大幅提升GCCloudDocker
- RDP服務之GoldBrute殭屍網路Go
- apache網路服務的搭建和配置Apache
- Ubuntu下的網路服務詳解Ubuntu
- linux下重啟網路服務Linux
- 2017網際網路教育服務產業研究產業
- 網際網路環境下服務提供的模式模式
- 利用人性弱點的網際網路服務
- 網際網路衛星地圖服務比較地圖
- 10月14日 網路檔案共享服務 2 NFS服務和SAMBA服務NFSSamba