成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提升低端設(shè)備的Web性能

開發(fā) 前端
之前我們可能都聽說過 “自適應(yīng)加載” 這個(gè)名詞,可能大多數(shù)人都停留在對屏幕的大小做出響應(yīng)上,實(shí)際上它還可以指對實(shí)際的硬件設(shè)備做出響應(yīng)。

 

自適應(yīng)加載

之前我們可能都聽說過 “自適應(yīng)加載” 這個(gè)名詞,可能大多數(shù)人都停留在對屏幕的大小做出響應(yīng)上,實(shí)際上它還可以指對實(shí)際的硬件設(shè)備做出響應(yīng)。

在設(shè)備千差萬別的世界中,“一刀切”的體驗(yàn)可能并不總是奏效。使高端設(shè)備上的用戶滿意的網(wǎng)站可能無法在低端設(shè)備上使用,特別是在中等水平的移動和桌面硬件以及新興市場上。

如果我們能夠調(diào)整頁面的交付方式,以更好地滿足用戶不同設(shè)備的限制,會怎么樣呢?

在上一次的 Chrome Dev Summit talk 中,來自 Google 的 Addy Osmani 和來自 Facebook 的 Nate Schloss 討論了 “自適應(yīng)加載” 這種模式。

  •  為所有用戶(包括低端設(shè)備)提供快速良好的使用體驗(yàn)
  •  在用戶的網(wǎng)絡(luò)和硬件能夠處理的情況下,逐步增加高端功能。

這可以使用戶可以獲得最適合他的體驗(yàn)。你可以通過 “自適應(yīng)加載” 解鎖下面的功能:

  •  在慢速網(wǎng)絡(luò)上提供低質(zhì)量的圖像和視頻
  •  只在高速 cpu 上加載非關(guān)鍵的 JavaScript 進(jìn)行交互
  •  限制低端設(shè)備上的動畫幀率
  •  避免在低端設(shè)備上進(jìn)行繁重的計(jì)算操作
  •  在速度較慢的設(shè)備上阻止第三方腳本

我們可以通過下面幾個(gè)信號來實(shí)現(xiàn)自適應(yīng)加載:

  •  網(wǎng)絡(luò):微調(diào)數(shù)據(jù)傳輸使用更少的帶寬(通過 navigator.connection.effectiveType)。我們還可以利用用戶的 Data Saver 選項(xiàng)(通過 navigator.connection.saveData)
  •  內(nèi)存:用于減少低端設(shè)備上的內(nèi)存消耗(通過navigator.deviceMemory)
  •  CPU核心數(shù):用于限制昂貴的 JavaScript 執(zhí)行并在設(shè)備不能很好處理時(shí)(通過navigator.hardwareConcurrency)減少CPU密集型邏輯。這是因?yàn)?JavaScript 執(zhí)行受 CPU 限制。

在演講中,作者介紹了在 Facebook,eBay,Tinder 等網(wǎng)站上使用的這些想法的真實(shí)示例。詳細(xì)視頻可以到 https://www.youtube.com/watch?v=puUPpVrIRkc&feature=youtu.be 查看

自適應(yīng)加載 React Hooks

Google Chrome 團(tuán)隊(duì)還發(fā)布了一組新的(實(shí)驗(yàn)性的)React Hooks&Utilities,用于在 React 程序中實(shí)現(xiàn)自適應(yīng)加載技術(shù)。

https://github.com/GoogleChromeLabs/react-adaptive-hooks

useNetworkStatus React Hook:用于根據(jù)網(wǎng)絡(luò)狀態(tài)(有效的連接類型)對應(yīng)用程序進(jìn)行調(diào)整: 

  1. import React from 'react';  
  2. import { useNetworkStatus } from 'react-adaptive-hooks/network';  
  3. const MyComponent = () => {  
  4.   const { effectiveConnectionType } = useNetworkStatus();  
  5.   let media;  
  6.   switch(effectiveConnectionType) {  
  7.     case '2g':  
  8.       media = <img src='medium-res.jpg'/> 
  9.       break;  
  10.     case '3g':  
  11.       media = <img src='high-res.jpg'/> 
  12.       break;  
  13.     case '4g':  
  14.       media = <video muted controls>...</video> 
  15.       break;  
  16.     default: 
  17.        media = <video muted controls>...</video> 
  18.       break;  
  19.   }  
  20.   return <div>{media}</div> 
  21. }; 

useSaveData 用于根據(jù)用戶瀏覽器的數(shù)據(jù)保護(hù)選項(xiàng)對程序進(jìn)行調(diào)整: 

  1. import React from 'react';  
  2. import { useSaveData } from 'react-adaptive-hooks/save-data';  
  3. const MyComponent = () => {  
  4.   const { saveData } = useSaveData();  
  5.   return (  
  6.     <div> 
  7.        { saveData ? <img src='...' /> : <video muted controls>...</video> }  
  8.     </div>  
  9.   );  
  10. }; 

useHardwareConcurrency:根據(jù)用戶設(shè)備上的邏輯CPU處理器內(nèi)核數(shù)對程序進(jìn)行調(diào)整的: 

  1. import React from 'react';  
  2. import { useHardwareConcurrency } from 'react-adaptive-hooks/hardware-concurrency';  
  3. const MyComponent = () => {  
  4.   const { numberOfLogicalProcessors } = useHardwareConcurrency();  
  5.   return (  
  6.     <div>  
  7.       { numberOfLogicalProcessors <= 4 ? <img src='...' /> : <video muted controls>...</video> }  
  8.     </div>  
  9.   );  
  10. }; 

將來,我們希望看到更多的基礎(chǔ)架構(gòu)的示例,這些示例可以根據(jù)用戶的網(wǎng)絡(luò)和設(shè)備約束自動調(diào)整和最優(yōu)的應(yīng)用程序體驗(yàn)。

了解更多內(nèi)容:https://dev.to/addyosmani/adaptive-loading-improving-web-performance-on-low-end-devices-1m69 

 

責(zé)任編輯:龐桂玉 來源: 前端大全
相關(guān)推薦

2017-09-19 14:28:06

Web開發(fā)網(wǎng)站

2015-02-05 09:47:52

Web性能Web開發(fā)

2013-05-21 14:35:30

Radware網(wǎng)絡(luò)延遲

2011-09-20 10:41:45

Web

2017-11-06 14:33:54

Web開發(fā)服務(wù)器網(wǎng)絡(luò)

2009-08-25 15:35:45

citrxinetscalerncore

2011-05-12 09:08:39

2010-08-17 16:26:09

無線上網(wǎng)

2015-07-30 10:48:32

Radware

2014-07-31 09:28:09

ASP.NETWeb API

2017-12-13 13:09:36

NginxWeb應(yīng)用

2015-02-04 09:19:03

Web優(yōu)化

2009-12-18 14:20:49

路由器性能

2009-03-24 15:18:39

智能化應(yīng)用交付行為分析

2023-09-11 16:54:17

谷歌開發(fā)

2018-08-23 17:45:52

2024-11-05 09:20:47

2013-05-22 09:38:03

GoGo語言Go性能

2021-12-02 07:02:16

API性能設(shè)計(jì)

2013-06-05 19:14:28

博通SoCNAS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91一区 | 美女视频黄的 | 天天插天天搞 | 日韩欧美专区 | 九色在线观看 | 成人不卡 | 日韩伦理一区二区 | 精品一区二区三区在线观看国产 | 国产高清视频 | 精品视频一区二区 | 国产一二三视频在线观看 | 爱爱综合网 | 日韩av在线一区 | 久久久片| 在线看av网址 | av网站在线播放 | 天天精品在线 | www.日韩 | 中文字幕一二三区 | 天天干人人 | 久久久久久网站 | 亚洲v日韩v综合v精品v | 美女亚洲一区 | 毛片的网址 | 午夜精品一区二区三区免费视频 | 欧美一级特黄aaa大片在线观看 | 在线一区视频 | 欧美一级片在线 | 国内自拍视频在线观看 | 精品精品视频 | av网站免费看| 欧美福利| 性色av香蕉一区二区 | 日韩欧美三级在线 | 精品视频久久久 | 免费在线国产视频 | 精精国产xxxx视频在线野外 | 欧美成人一区二区三区 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 欧洲一级视频 | 国产精品久久久久久久久久久久久 |