OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

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

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

关注

评论

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

在线帮助中心对企业的作用及解决方案

小炮

蓝凌叮当刘向华:如何用一款SaaS俘获年轻人的心?

ToB行业头条

腾讯云小微技术登顶权威榜单XTREME基准,跨语言技术迁移开发助力企业出海

科技热闻

Python小白何时能做自动化

伤心的辣条

Python 软件测试 自动化测试 接口测试 测试开发

给你一个项目,你将如何开展性能测试工作?

伤心的辣条

Python 程序员 IT 自动化测试 接口测试

35人首次上榜、行者皆勇者——创业邦3040新青年创投峰会圆满落幕

创业邦

ShardingSphere 异构迁移最佳实践:将3.5亿量级的顾客系统 RTO 减少60倍

SphereEx

Java php MySQL 数据库 ​Apache ShardingSphere

国家先进计算产业创新(宜昌)中心正式落地 由中科曙光、升哲科技联合运营

SENSORO

人工智能 物联网 新基建 智慧城市

全国超10亿用户!AntDB数据库的电信核心交易替换之路

亚信AntDB数据库

数据库 通信 电信 运营商 数据库应用开发

改变世界的开发者丨黑客松冠军,为听障儿童推开一扇“有声的窗”

华为云开发者联盟

云计算 华为云 GaussDB 听觉 听障儿童

本周三晚19:00Hello HarmonyOS应用篇第7课—分布式应用开发

HarmonyOS开发者

HarmonyOS

数据关联最佳实践

观测云

可观测性 可观测

Git 不要只会 pull 和 push,学学这 5 条提高效率的命令

CRMEB

本周二晚19:00战码先锋第5期直播丨深入理解OpenHarmony系统启动,轻松踏上设备软件开发之旅

OpenHarmony开发者

OpenHarmony

想要了解数字机器人如何赋能政企领域,一定不要错过这个论坛

王吉伟频道

RPA 机器人流程自动化 机器人开发 华为开发者大会2022 华为WeAutomate

LeaRun.Java表单快速开发工具

力软低代码开发平台

国际权威报告:SaaS+AI大势所趋,腾讯云领跑国内科技公司

科技热闻

CloudTTY:下一代云原生开源 Cloud Shell

Daocloud 道客

Kubernetes 云原生 开源项目 网页命令行

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南【附网盘资源】

伤心的辣条

Python 程序员 软件测试 IT 自动化测试

想发自己的NFT,你要先搞清楚这6个问题

华为云开发者联盟

区块链 数据资产 NFT

应用实践 | Apache Doris 在网易互娱的应用实践

SelectDB

MySQL 数据库 最佳实践 apache doris 数据优化

新一代政务云的“前移”与“致远”

浪潮云

云计算

2022中国信通院安全运营发展论坛成功召开

中国IDC圈

安全

元气部落仿站开发,元气部落盲盒系统APP开发

WDL22119

盲盒小程序开发 盲盒源码 盲盒H5开发 盲盒APP系统开发 元气部落仿站开发

游泳馆应用软件开发:在线一站式服务,优化用户整体体验

开源直播系统源码

软件开发 APP开发 直播系统

从无到有,政务系统的全面可观测模板

博睿数据

智能运维 博睿数据 政务系统 全面检测

如何实现十亿级离线 CSV 导入 Nebula Graph

NebulaGraph

知识图谱 数据导入 Nebula Graph CSV 文件导入

Mybatis省略@Param注解原理

mybatis 6月月更 @Param注解

问题来了:4GB物理内存的机器上申请8G内存能成功吗?

Java全栈架构师

Java Linux 程序员 面试 程序人生

melody SGS旋律麦克风链游开发模式分析

开发微hkkf5566

面试时必问的五大问题

伤心的辣条

Python 软件测试 自动化测试 测试开发 软件测试面试

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