NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

跨境通讯

ctsxiyou

通信 通讯

Part 5:NetOps团队的 SecOps和网络安全基础知识

Geek_d82186

基于OpenIM 实现聊天机器人功能

Geek_1ef48b

镜像仓库Habor的安装、高可用、https加密教程

百度搜索:蓝易云

Docker Linux 运维 https habor

Part 4:NetOps 策略如何影响企业网络团队?

Geek_d82186

Python笔记四之协程

Hunter熊

Python 协程

给你一颗“定心丸”——记一次由线上事故引发的Log4j2日志异步打印优化分析

京东科技开发者

DBeaverEE for Mac(数据库管理)v23.3.3企业激活版

影影绰绰一往直前

iOS应用崩溃了,如何通过崩溃手机连接电脑查找日志方法

Part 3:为什么 NetOps 是通往 AIOps 的桥梁

Geek_d82186

某SAAS云平台系统单点登录案例基本要求分析

极客罗杰

如何在JavaScript中实现主题切换

南城FE

CSS JavaScript 前端 主题切换

面向对象的思考

蔡农曰

架构 开发 软件设计 #程序员

产品价值 vs Bug数量

Bruce Talk

敏捷 敏捷开发 Agile Product Owner

Nginx安装三方插件ngx_req_status模块教程

百度搜索:蓝易云

云计算 Linux 运维 云服务器 ngx_req_status

【完整版教程】查看APP崩溃日志

雪奈椰子

四步搞定国赛!快速入门大小模型融合的AI产品开发

飞桨PaddlePaddle

百度 产品开发 大模型 飞桨国赛 飞桨星河社区

CADintosh X for Mac(CAD制图软件)v8.8.6 (718)注册版

影影绰绰一往直前

京东商品详情数据接口python

tbapi

京东 京东商品详情数据接口 京东API接口

Part 2:NetOps与传统网络运营的区别

Geek_d82186

从上海到阿根廷的网络走线方式和耗时

fliter

GraphicConverter 12 for Mac(图片浏览器)v12.1(6388)中文测试激活版

影影绰绰一往直前

Part 1:什么是网络运营?你需要知道的一切

Geek_d82186

Wireshark的捕获接口设置

小齐写代码

京东零售实践干货|简单一招竟把nginx服务器性能提升50倍

京东零售技术

nginx 后端

听GPT 讲Rust源代码--compiler(48)

fliter

【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(附通信协议和代码)(上)

洛神灬殇

分布式 Netty RPC 网络通讯 2024年第二十五篇文章

深入了解低代码开发:多角度分类

天津汇柏科技有限公司

低代码 低代码开发 低代码开发平台 定制软件开发 软件开发定制

Tonka Finance 测试网活动,开启新铭文时代财富之门

股市老人

极狐GitLab 16.8 如期而至,快来看看有哪些功能更新!

极狐GitLab

Claris FileMaker Pro for mac(数据库软件)v20.3.1.31激活版

影影绰绰一往直前

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