写点什么

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

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

关注

评论

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

别让算力掉队:AI架构里被忽视的关键一环

ScaleFlux

企业级存储 定制化芯片 AI基础架构

BeeWorks Meet:私有化部署视频会议的高效选择

BeeWorks

即时通讯 IM 私有化部署

分布式高性能Java架构设计:高可用+低延迟+弹性扩展的架构范式与生产级方案及Java架构:核心原理与案例实战!

程序员高级码农

Java Java 面试 高性能

怎么在线制作数据看板?3个看板软件大盘点!

职场工具箱

项目管理 职场 数据看板 看板软件 在线看板工具软件

抖音集团电商流量实时数仓建设实践

Apache Flink

大数据 flink 实时计算 实时数仓

4.29 时序分析与模型直播详解,从功能到应用的全面科普!

Apache IoTDB

YashanDB 知识库|数据库明明在线,yasboot 却显示“off”?其实是启动方式不对

数据库砖家

数据库·

YashanDB 知识库|如何回收表空间?高水位线是关键!

数据库砖家

数据库·

2025 Java 开发避坑指南:如何避免踩依赖管理的坑?

飞算JavaAI开发助手

甲方急要「商品查询 + 订单接口」!飞算 JavaAI 一键生成标准 Controller 代码

飞算JavaAI开发助手

如何成功防护T级超大流量的DDoS攻击

网络安全服务

CDN 服务器 DDoS 高防服务器 高防IP

AI电视里的达摩

脑极体

AI

无需云服务器、无需公网IP,轻松实现门禁系统远程接入与数据同步

贝锐

内网穿透 智能门禁

英特尔2025年Q1营收127亿美元,数据中心与AI业务可圈可点

E科讯

运维实战来了|手把手教你构建 YashanDB 的 Prometheus Exporter

数据库砖家

数据库·

最火向量数据库Milvus安装使用一条龙!

王磊

为什么 80% Java 新手卡在业务逻辑?AI 代码生成工具实测解忧

飞算JavaAI开发助手

深入解析淘宝商品详情 API 接口:功能、使用与实践指南

tbapi

淘宝API 淘宝商品详情API接口 淘宝商品数据采集 天猫商品详情API接口

Rime 最新 TTS 模型 Arcana:能听到呼吸声和轻微口腔音;Bubba AI:专为卡车司机打造的语音交互智能体丨日报

声网

【重磅】敲敲云桌面版正式发布!

JEECG低代码

零代码 桌面应用 敲敲云

为什么说BeeWorks即时通讯(IM)系统适合金融行业使用?

BeeWorks

即时通讯 IM 私有化部署 企业级应用

API 即 MCP|Higress 发布 MCP Marketplace,加速存量 API 跨入 MCP 时代

阿里巴巴云原生

阿里云 云原生 MCP

聚力共赢:超聚变联合枫清科技,构建“算力底座+知识中台”企业智能化新引擎

Fabarta

人工智能 #大模型

基于华为开发者空间定制C/C++开发环境镜像

华为云开发者联盟

,华为云 华为开发者空间

YashanDB 知识库|数据误删别慌!一文教你搞定“表闪回”

数据库砖家

数据库·

AI 代码生成工具的未来:飞算 JavaAI 如何定义新标准?

飞算JavaAI开发助手

后知后觉!要是大学就有这些 AI 工具,我能多拿多少奖学金

飞算JavaAI开发助手

全网首测!三大 AI 编程工具生成 SpringCloud 代码对比

飞算JavaAI开发助手

观测云数据在Grafana展示的最佳实践

观测云

Grafana

视频丨Google 最新 AI 眼镜原型曝光:轻量 XR+情境感知 AI 打造下一代计算平台

声网

YashanDB 知识库|YMP 报 YAS-04204 创建索引失败?可能是你配置超了并发上限

数据库砖家

数据库·

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