Google的Web性能优化新方法——Diffable

摘要:
来源于InfoQ:GoogleMaps的开发人员Josh和James最近提出并实现了一种Web性能优化新方法——Diffable,即在浏览器加载Web页面时,促使其比较相关文件在服务器端和客户端缓存区的版本并只下载差量,降低网络下载造成的延迟。本文简要介绍了Diffable方法的背景、原理、优势和实现情况。为了解决类似问题,GoogleMaps的工程师提出了Diffable方法。

来源于InfoQ

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的Web性能优化新方法——Diffable第1张

图 1. Diffable方法原理图 (来源:Velocity 2010年会演讲资料

性能优势

对于Google Maps来说,Diffable方法节省了1200毫秒(减少页面加载时间的25%),请注意这种方法只对已经缓存旧版页面文件的Google Maps用户有效,此类用户约占全部用户的20%-25%,参见图2所示:

Google的Web性能优化新方法——Diffable第2张

图 2. Diffable方法在Google Maps应用的性能对比 (来源:Velocity 2010年会演讲资料

实现

Diffable方法是一种Web性能优化思想,目前Google的开发人员已经针对J2EE应用完成了相应的开源实现,采用Apache License 2.0授权,具体细节可以参考以下文档:

感兴趣的朋友可以登陆Diffable开源项目官方网站了解更多详情。

免责声明:文章转载自《Google的Web性能优化新方法——Diffable》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇去中心化数字身份DID简介——三、用户属性的选择性披露吴翰清(道哥)眼中的机器智能:计算机的再发展下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JavaScript 文件操作方法详解

可以通过浏览器在访问者的硬盘上创建文件,因为我开始试了一下真的可以,不信你把下面这段代码COPY到一个HTML文件当中再运行一下! <scriptlanguage="JavaScript"> <!-- varfso=newActiveXObject("Scripting.FileSystemObject"); fso.DeleteFile...

iframe高度自适应的6个方法

原文链接:http://caibaojian.com/iframe-adjust-content-height.html JS自适应高度,其实就是设置iframe的高度,使其等于内嵌网页的高度,从而看不出来滚动条和嵌套痕迹。对于用户体验和网站美观起着重要作用。 如果内容是固定的,那么我们可以通过CSS来给它直接定义一个高度,同样可以实现上面的需求。当内容是...

EBS开发性能优化之查找需要优化的程序

1.登陆数据库LINUX环境      使用 top 命令查看进程状况 [oratest@ebsdb~]$top top - 15:58:59 up 8 days, 22:04,  1 user,  load average: 0.96, 1.32, 1.05 Tasks: 1870 total,   1 running, 1869 sleeping,  ...

让超链接点击后不跳转,可以用href = "https://tool.4xseo.com/article/267833.html",但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成

让超链接点击后不跳转,可以用href = "https://tool.4xseo.com/article/267833.html",但是这个#就会锚点到页面最上边     点击链接后不跳转可以设置成     1.<a href="javascript:void(0);" >javascript:void(0);</a>     2....

mysql性能监控相关

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接 怎么进入mysql命令行呢? mysql的安装目录下面有个bin目录,先用命令行进入该目录,然后用 mysql -uroot -p123456 来登录(注意:用户名和密码不用包含“”) 命令: show processlist; 如果是root帐号,你能看到所有用户...

Web开发中20个很有用的CSS库

来源: 微信公众号文章 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供了一系列功能和特性。每个月都有无数个围绕CSS的工具被开发者发布以简化WEB开发。像CSS库,框架,应用这样的工具能够为开发者做很多事,而且可以使开发者创造出创新立异的WEB应用。 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供了一系列功能...