2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

【YashanDB知识库】exp 导出数据库时,报错YAS-00402

YashanDB

数据库 yashandb

SD-WAN:跨国企业组网方案

Ogcloud

SD-WAN SD-WAN组网 SD-WAN国际专线 跨国网络专线 跨国企业组网

【YashanDB知识库】YAS-04003 maximum number of open cursors is xxx

YashanDB

数据库 yashandb

数造科技获中国信通院感谢信:携手推进数字中国建设

数造万象

数字化转型 数据治理 数字经济 科技 大模型

Chrome 或引入 Gemini AI 功能「Glic」,需访问麦克风;理想同学 App 即将上线支持语音交流、识物

RTE开发者社区

2025最新版Java面试八股20w字(附各大厂面试真题及答案)

Geek_Yin

Java 程序员 2025 Java面试题 Java面试八股文

【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常

YashanDB

数据库 yashandb

【YashanDB知识库】通过触发器复制varchar(4000 char)列的数据导致乱码

YashanDB

数据库 yashandb

电商平台能挡住恶意网络爬虫的攻击吗?

网络安全服务

爬虫 IP 电商平台 带宽 电商网站

第二十八期中国管理会计沙龙在北京成功举办

用友智能财务

【连载 07】线程安全与 synchronize

FunTester

【YashanDB知识库】yasboot集群状态命令登录失败问题

YashanDB

数据库 yashandb

深度解析DAPP开发 | 智能合约与业务应用

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

以腾讯混元模型为例,在管理平台上集成一个智能助手

为自己带盐

大模型应用

从流畅到智能再到安全,看看原生鸿蒙如何“一锅端”

最新动态

链游破局之路:如何打破边缘化,获得更好的发展

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 代币开发 交易所开发公链开发

飞轮科技荣获中国电信星海大数据最佳合作伙伴奖!

SelectDB

数据库 大数据 数据仓库 数据分析 喜报

【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading

YashanDB

数据库 yashandb

【YashanDB知识库】由于druid中间件配置导致的YAS-04003 maximum number of open cursors is 1000

YashanDB

数据库 yashandb

【YashanDB知识库】YAS-04209 unexpected word ;

YashanDB

数据库 yashandb

推荐一个C#轻量级矢量图形库

不在线第一只蜗牛

C#

Apache Doris 创始人:何为“现代化”的数据仓库?

SelectDB

数据库 数据仓库 数据分析 Doris 大数据 开源

在 DevOps 中,如何应对技术债务和系统复杂性,以确保可持续的研发效能和创新?

思码逸研发效能

研发效能 效能管理 研发效能度量 研发效能管理

Spring常见的77道面试题及答案

Geek_Yin

Java spring 程序员 java面试 Java面试题

【YashanDB知识库】YAS-00004 feature "create user" has not been implemented yet

YashanDB

数据库 yashandb

【YashanDB知识库】YAS-00004 feature "implict table" has not been implemented yet

YashanDB

数据库 yashandb

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