写点什么

Google 提出 Web 性能优化新方法——Diffable

  • 2010-08-12
  • 本文字数:692 字

    阅读完需:约 2 分钟

Google Maps 的开发人员 Josh 和 James 最近提出并实现了一种 Web 性能优化新方法—— Diffable ,即在浏览器加载 Web 页面时,促使其比较相关文件(Html、JavaScript 等)在服务器端和客户端缓存区的版本并只下载差量(Deltas),降低网络下载造成的延迟。本文简要介绍了 Diffable 方法的背景、原理、优势和实现情况。

背景

众所周知,Google Maps 是一款“重量级”的富互联网应用,主要 JavaScript 文件大小接近 300K,而一个平常的补丁更新只有不到 20K,这意味着如果用户的浏览器已经缓存了旧版本的 JavaScript 文件,那么在通常情况下,用户不得不下载多余的 280K(内容没有变化),页面加载速度就会受此影响。为了解决类似问题,Google Maps 的工程师提出了 Diffable 方法。

原理

Diffable 方法需要在服务器端和客户端同时实施,如图 1 所示。

  • 服务器组件记录网页相关文件版本更新的差量,以便在客户端需要时向其发送补丁以更新过时的缓存文件。
  • 客户端组件(采用 JavaScript 编写)检测是否缓存了过时文件并在必要时请求新版本的差量补丁,与缓存的文件合并完成更新。

性能优势

对于 Google Maps 来说,Diffable 方法节省了 1200 毫秒(减少页面加载时间的 25%),请注意这种方法只对已经缓存旧版页面文件的 Google Maps 用户有效,此类用户约占全部用户的 20%-25%,参见图 2 所示:

实现

Diffable 方法是一种 Web 性能优化思想,目前 Google 的开发人员已经针对 J2EE 应用完成了相应的开源实现,采用 Apache License 2.0 授权,具体细节可以参考以下文档:

感兴趣的朋友可以登陆 Diffable 开源项目官方网站了解更多详情。

2010-08-12 08:528258
用户头像

发布了 501 篇内容, 共 284.2 次阅读, 收获喜欢 64 次。

关注

评论

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

引领下一代操作系统技术方向 第一届OpenHarmony技术峰会成功召开

极客天地

架构实战营-模块三作业

🐢先生

架构实战营

Python:Excel自动化实践入门篇 甲【送图书门票】

eng八戒

python excel

人肉智能#003:为什么 Instagram 曾经值得尊敬

光毅

facebook Instagram

2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP。

福大大架构师每日一题

golang ffmpeg 福大大

Amazon S3 服务15岁生日快乐!

亚马逊云科技 (Amazon Web Services)

数据库 云计算

三天吃透MySQL八股文(2023最新整理)

程序员大彬

Java MySQL 数据库

time_point 的基本用法举例

老王同学

C++11

for循环中声明变量的一个问题回顾

老王同学

c++

精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南

码界西柚

数据结构 延时队列 算法框架 DelayedQueue 时间轮(TimeWheel)

PHP Windows 下 XAMPP 的 xdebug 配置

HoneyMoose

Java 数据类型(全网最全)

kcodez

Java 后端

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

鳄鱼视界

Python电影售票系统

漫步桔田

如何使用开源构建可信赖的人工智能

开源雨林

人工智能 开源

秒懂算法 | 回归算法中的贝叶斯

TiAmo

算法 贝叶斯公式 贝叶斯算法

数字孪生在智慧物流中的应用价值

申扬科技

智慧物流 数字孪生

极客时间架构训练营模块八作业-消息队列存储消息数据的 MySQL 表格

张Dave

速来~与 Werner Vogels 博士一起探索敏捷性与创新速度一起提升的秘方

亚马逊云科技 (Amazon Web Services)

JVM课程作业

追随哆咪

Google提出Web性能优化新方法——Diffable_Java_崔康_InfoQ精选文章