写点什么

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:528114
用户头像

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

关注

评论

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

Multitouch for Mac(多点触控手势增强神器)v1.27.42免激活版

Rose

TiDB备份存储选择指南

TiDB 社区干货传送门

实践案例 管理与运维 备份 & 恢复

载誉前行 蓄力向新 | 博睿数据2024年度精彩回顾。

博睿数据

从研究生到管培生,看98年校招生如何让更多企业用上通义灵码

阿里云云效

阿里云 云原生 通义灵码

聚焦“一度算力”,九章云极DataCanvas公司推进算力标准化建设

九章云极DataCanvas

奖项再 +1 !飞轮科技荣获 Datafun 2024 年第二届星空奖——数智技术领航企业奖

SelectDB

数据库 数据湖 数据分析 新闻 大数据 开源

MES系统在智能制造中的核心作用

万界星空科技

数字化转型 制造业 mes 万界星空科技

从研究生到管培生,看98年校招生如何让更多企业用上通义灵码

阿里巴巴云原生

阿里云 云原生

CADintosh X:Mac上的CAD设计利器,让创意无限延伸

Rose

1688商品详情数据接口(H5、APP端)

tbapi

1688商品详情接口 1688API接口

鸿蒙NEXT开发中使用星闪服务

威哥爱编程

HarmonyOS HarmonyOS NEXT HarmonyOS5.0

Visual Studio for 2022 我们上架啦!

CodeBuddy

功能强大的跨平台SSH客户端 Termius for mac v9.11.0激活版

Rose

智驭未来,算启新篇:黄山“大位”智算中心项目重磅发布!

九章云极DataCanvas

Little Snitch for Mac:守护您的网络隐私,拦截不必要的出站连接

Rose

TiDB 8.5 LTS 发版——支持无限扩展,开启 AI 就绪新时代

TiDB 社区干货传送门

园林设计师必备软件!Garden Planner激活码及安装教程

Rose

携手共创数据存储新纪元 西部数据亮相2024微星龙盾局成都站

极客天地

iDealshare VideoGo for Mac(mac音视频转换器)中文注册版

Rose

测试自动化中遵循的最佳实践

禅道项目管理

程序员 最佳实践 自动化测试 测试自动化

九章云极DataCanvas公司2025开门红巨献活动

九章云极DataCanvas

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