时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

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

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

关注

评论

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

程序员"计算机之子"的职场反思

博文视点Broadview

京东商品列表数据接口(JD.item_search)

tbapi

京东 京东API接口 京东商品列表数据接口 京东商品列表数据采集

从云原生视角看 AI 原生应用架构的实践

阿里巴巴云原生

阿里云 云原生

活动回顾丨云原生技术实践营 Serverless + AI 专场 (深圳站) 回顾 & PPT 下载

阿里巴巴云原生

阿里云 Serverless AI 云原生

GitHub爆赞!最适合新手入门的教程——笨方法学Python 3

我再BUG界嘎嘎乱杀

Python 后端 入门 开发语言 零基础

软件测试学习笔记丨JUnit5结合数据驱动-json

测试人

软件测试

mac竞速游戏:狂野飙车8:极速凌云 for Mac 安装包

你的猪会飞吗

Mac游戏下载 Mac游戏推荐

他们说:优秀的程序员应该对代码保持追求

秃头小帅oi

GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了

我再BUG界嘎嘎乱杀

Python 编程 入门 开发语言 零基础

6月28日PolarDB开源社区长沙站,NineData联合创始人周振兴将带来《数据库DevOps最佳实践》主题分享

NineData

数据库 DevOps polarDB NineData 周振兴

MYSQL中怎么查询LONGBLOB类型数据的大小

不在线第一只蜗牛

MySQL 数据库 sql

【HDC.2024】华为云Astro低代码平台开启AI敏捷组装时代,探索低代码创新无限可能

低代码 华为云

心理咨询行业的现状与未来:AI+心理咨询的显著成长性

心大陆多智能体

人工智能 AI 大模型 心理健康 数据心理

2024-06-26:用go语言,给定一个长度为n的数组nums和一个正整数k, 找到数组中所有相差绝对值恰好为k的子数组, 并返回这些子数组中元素之和的最大值。 如果找不到这样的子数组,返回0。 输

福大大架构师每日一题

福大大架构师每日一题

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