写点什么

Chrome 运用“预期方法学”提升用户体验

  • 2012-07-06
  • 本文字数:1323 字

    阅读完需:约 4 分钟

Ilya Grigorik 写了一篇文章详细描述了Chrome 如何使用预期方法学隐藏网络延迟来提升用户体验。

根据 HTTP Archive 发布的统计报告,全球网站网页的平均大小首次超过 1MB(1024KB)大关,网页持续增肥并非是个好消息,特别是对于移动终端。Ilya 提到说 “现在网页的平均页面大小已经增长到 1059KB,平均每页的请求数已经超过了 80 个,包含 js,css, 图片,flash 等各种资源的请求。” 导致网页不断增肥的原因主要是图片(占到平均网页大小的一半)以及第三方脚本如分析、广告和社交分享按钮。但根本原因还在于人们对富媒体和动态内容的贪得无厌;另一个重要原因在于:“网站的所有者希望追踪用户行为,用各种可能 Widget 来诱使用户分享网站内容”,因此各种嵌入脚本也越来越多。 此外从请求的角度,“一个平均的 DNS 查找需要 60 到 120ms, 由于 TCP 握手需要往返时间,这使得在一个请求发出之前会有 100-200ms 的延迟,” 而在无线网络中这样的延迟甚至长达 200-1000ms,这对于移动页面的展现速度的影响更为糟糕。因此,最实实在在的优化方式还是减少请求连接数以及缩小页面的大小。

在众多的浏览器中 Chrome 使用了一个聪明的预期机制来极大地减少了明显的延迟,提升了用户的速度体验。如:“了解网络的拓扑结构,通过浏览的历史数据来预测用户行为和未来的资源请求,包括可以使用 DNS 预取、TCP 预连接等技术。” 例如当用户浏览新闻时,可能会在读完当前新闻后点击下一篇。Chrome 可以提前请求下一篇新闻,这样在用户点击相关链接时网页就会立即显示。

当然,和大部分浏览器缓存访问历史记录一样,Chrome 也可以根据用户的本地历史记录确定最可能访问的 10 个网站并随时可以提前访问。甚至于“当用户在多功能框(omnibox)内开始输入搜索词的时候,就事先推测性地连接到搜索引擎,当用户在输入 URL 的同时,也可以根据已经输入的 URL 部分推测连接到最有可能的站点。” 这样,当用户输入完网址确认时,相关的网站页面也被同时打开,让用户感受到的等待时间非常短,提高了访问速度。

Chrome 还在“解析 HTML 文件之前,先使用一个预加载扫描,对扫描到的资源请求抢先解析和预连接。用户在网页链接上的鼠标悬停等行为也可能会启动一个预取”。

Ilya 还提到一点 “Chrome 支持在文档的开头增加一个使用 rel=dns-prefetch 的链接元素来暗示浏览器预解析该站点的 DNS。 这么做的好处是:如果你知道某个特定的主机的请求将返回一个 3XX 到不同的主机,那么你也可以预先解决,通过 DNS 预取。” 关于 DNS 的优化,可以参考 DNS Prefetching

也许上面这些方法并不直接适用于您的应用程序,但可以在你的应用程序中隐藏类似的延迟。正如 Ilya 说,“这虽然是小改善,但积少成多!” 关于浏览器页面优化,可以参考浏览器的加载与页面性能优化

最后补充一点,对于Chrome 的预渲染、预载入功能固然能够加快速度,但也可能会弄巧成拙,占用过多带宽,对于这一点只需在Chrome 地址栏内输入chrome://settings/advanced,在选项内去掉“预测网络活动来改进页面载入”的选项即可。


给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-07-06 00:002817
用户头像

发布了 42 篇内容, 共 20.1 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

数字孪生项目开发的技术

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

相得益彰:Mem0 记忆框架与亚马逊云科技的企业级 AI 实践

亚马逊云科技 (Amazon Web Services)

人工智能

基于华为开发者空间开发平台-云开发环境(容器),完成贪吃蛇小游戏开发

华为云开发者联盟

Python 华为 程序员 华为开发者空间

时序数据库 TDengine 荣获第8届 AiDD 峰会“AI 研发应用场景创新奖”

TDengine

骁龙AI大赛公开课一答疑汇总来啦

极市平台

nginx性能优化之tcp调优

天翼云开发者社区

CDN

简单竞态条件漏洞如何击垮全球SaaS平台

qife122

网络安全 竞态条件

益和热力性能优化实践:从 SQL Server 到时序数据库 TDengine

TDengine

阿里云 Elasticsearch 的 AI 革新:高性能、低成本、智能化的搜索新纪元

阿里云大数据AI技术

人工智能 elasticsearch 阿里云 搜索 检索

Java与AI融合创新!龙蜥邀您参加 GreenTeaJUG MeetUp

OpenAnolis小助手

Java 操作系统 Meetup

2025骁龙AI大赛报名常见问题 FAQ

极市平台

性能优化 | HarmonyOS预加载,三步即可提升APP页面的响应速度

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

通过条件访问策略增强企业的安全性

运维有小邓

密码管理

谷歌Nano Banana Pro来袭:会推理的AI,重塑视觉创作

GPU算力

元数据的"分"与"合":面向 AI 时代的高性能分布式文件系统设计

焱融科技

AI 分布式文件系统 大模型训练 元数据管理

数字孪生项目的开发方法与流程

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

2025 SECon+AgentX 大会 — AI 原生应用架构专场

阿里巴巴云原生

阿里云 云原生

并发丢数据深度剖析:JED的锁机制与事务实战踩坑及解决方案

京东零售技术

最佳加密货币钱包选择指南:企业级安全与功能全解析

qife122

加密货币 数字钱包

UModel 数据治理:运维世界模型构建实践

阿里巴巴云原生

阿里云 云原生 可观测

如何借助ETL工具实现库存运营分析

谷云科技RestCloud

数据库 数据处理 数据传输 ETL 数据集成

【原理到实战】实验异质性分析

京东零售技术

Karmada 用户组再迎新成员,共绩科技正式加入 !

华为云原生团队

云计算 容器 云原生 Karmada

焱融科技亮相数据存储产业大会斩获重磅荣誉,CTO当选首批认证专家

焱融科技

AI存储 2025数据存储产业大会

一次编译器优化的陷阱

天翼云开发者社区

CDN

关于EPOLL触发的事件说明

天翼云开发者社区

CDN 网络

龙蜥操作系统装机量突破1000万,市占率近50%,首发支持RISC-V RVA23预览版!

OpenAnolis小助手

操作系统 龙蜥操作系统大会

工业+ AI 实践:AI 大模型与智能体深度融合工业 CAD/CAE/PLM

行云创新

智能体 工业智能体 AI 大模型 AI+工业 AI辅助 CAD 设计

腾讯音乐如何基于 AutoMQ 降低 Kafka 50%+ 成本

AutoMQ

具身开放日点燃生态引擎,智源以开源开放驱动具身智能创新

智源研究院

从技术突破到产业价值|焱融YRCache推理方案连续入选两大行业标杆案例

焱融科技

AI推理 大模型推理 YRCache

Chrome运用“预期方法学”提升用户体验_Chrome_晁晓娟_InfoQ精选文章