自适应加载之前我们可能都听说过 “自适应加载” 这个名词,可能大多数人都停留在对屏幕的大小做出响应上,实际上它还可以指对实际的硬件设备做出响应 。
在设备千差万别的世界中,“一刀切”的体验可能并不总是奏效 。使高端设备上的用户满意的网站可能无法在低端设备上使用,特别是在中等水平的移动和桌面硬件以及新兴市场上 。
如果我们能够调整页面的交付方式,以更好地满足用户不同设备的限制,会怎么样呢?
文章插图
在上一次的 Chrome Dev Summit talk 中,来自 google 的 Addy Osmani 和来自 Facebook 的 Nate Schloss 讨论了 “自适应加载” 这种模式 。
- 为所有用户(包括低端设备)提供快速良好的使用体验
- 在用户的网络和硬件能够处理的情况下,逐步增加高端功能 。
- 在慢速网络上提供低质量的图像和视频
- 只在高速 cpu 上加载非关键的 JAVAScript 进行交互
- 限制低端设备上的动画帧率
- 避免在低端设备上进行繁重的计算操作
- 在速度较慢的设备上阻止第三方脚本
文章插图
我们可以通过下面几个信号来实现自适应加载:
- 网络:微调数据传输使用更少的带宽(通过 navigator.connection.effectiveType) 。我们还可以利用用户的 Data Saver 选项(通过 navigator.connection.saveData)
- 内存:用于减少低端设备上的内存消耗(通过navigator.deviceMemory)
- CPU核心数:用于限制昂贵的 JavaScript 执行并在设备不能很好处理时(通过navigator.hardwareConcurrency)减少CPU密集型逻辑 。这是因为 JavaScript 执行受 CPU 限制 。
在演讲中,作者介绍了在 Facebook,eBay,Tinder 等网站上使用的这些想法的真实示例 。详细视频可以到 https://www.youtube.com/watch?v=puUPpVrIRkc&feature=youtu.be 查看
文章插图
自适应加载 React HooksGoogle Chrome 团队还发布了一组新的(实验性的)React Hooks&Utilities,用于在 React 程序中实现自适应加载技术 。
文章插图
https://github.com/GoogleChromeLabs/react-adaptive-hooksuseNetworkStatus React Hook:用于根据网络状态(有效的连接类型)对应用程序进行调整:
import React from 'react';import { useNetworkStatus } from 'react-adaptive-hooks/network';const MyComponent = () => { const { effectiveConnectionType } = useNetworkStatus(); let media; switch(effectiveConnectionType) { case '2g': media = <img src=https://www.isolves.com/it/cxkf/bk/2020-08-18/'medium-res.jpg'/>; break; case '3g': media = ; break; case '4g': media = ; break; default: media = ; break; } return {media};};
useSaveData 用于根据用户浏览器的数据保护选项对程序进行调整:import React from 'react';import { useSaveData } from 'react-adaptive-hooks/save-data';const MyComponent = () => { const { saveData } = useSaveData(); return ( <div> { saveData ? <img src=https://www.isolves.com/it/cxkf/bk/2020-08-18/'...' /> : }
import React from 'react';import { useHardwareConcurrency } from 'react-adaptive-hooks/hardware-concurrency';const MyComponent = () => { const { numberOfLogicalProcessors } = useHardwareConcurrency(); return ( <div> { numberOfLogicalProcessors <= 4 ? <img src=https://www.isolves.com/it/cxkf/bk/2020-08-18/'...' /> :
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 刘亦菲|刘亦菲素颜变“直男斩”,自曝在家使用美容设备,网友:确实好用
- 关闭Windows这些没用的设置,电脑性能至少提升50%
- GTA5|《GTA5增强版》将登陆PC:支持光追、画质大提升
- AMD|5nm Zen4!AMD革命性Phoenix APU曝光:彻底干掉低端独立显卡
- 微软|自家设备首发:Win11测试“Voice Clarity”语音降噪功能
- 菌肥有效提升茶叶品质,提升市场竞争力
- 自拍|最美小米手机新款!小米Civi 1S宣布搭载骁龙778G Plus:流畅度提升27%
- 合力提升白茶品牌,提升茶叶质量
- 审美,总是提升不了怎么办?
- 智能摄像机该怎么选,提升用户安全感最重要