>

Google 更新 PageSpeed 网页加速服务,帮你打通网页

- 编辑:美洲杯足球彩票 -

Google 更新 PageSpeed 网页加速服务,帮你打通网页

Google 去年推出了 PageSpeed 的网页优化建议工具,已经帮很多每秒钟几十万上下对网页读取速度斤斤计较的朋友们,去除阻碍网页读取速度的各个元凶。坦白讲它其实与 Akamai 网页加速服务的概念相当类似,都是透过各种方式包括提供网页缓存服务,来协助使用者改善网页的读取反应速度。而这次 Google 则是针对此服务带来了诸多更新,希望可以让你网页的读取速度更加突飞猛进。PageSpeed 服务的新一代 rewriter 运用了一个叫「优先缓冲可见组件(Cache and Prioritize Visible Content)」的魔法,让 HTML 编码也能部分接受这个缓存服务的帮助:以往网页在所需组件读出之前,大多会停滞在白色页面好一阵子,这次 Google 就是打算尽可能消除这个空白瞬间,透过 rewriter 对网页的重新撰写改造,将页面上可实时显示的内容与需等候回传的个人信息或者是无法支持缓存的组件如 Javascript 等分开处理,让快车不必等待慢车就先将相关内容显示,加速用户的网页浏览体验。这样姑且不论网页完全读取完成的速度是否真有得到加速,但光就使用者的观感而言,应该会感觉网页的反应的确是有所增进。虽说针对太多需要等候数据回传的个人化网页而言,这样的加速工具带来的帮助可能不大啦...,但做为用来优化自己网页的工具而言,这项服务应该还是可以带来很多不错的帮助啰。最后一个引用来源可以观看更多技术细节说明,想直接试试的朋友也可以在第二个引用来源看到此服务的页面。

  1. 启用压缩/ GZIP
    使用gzip对HTML和CSS文件进行压缩,通常可以节省大约50%到70%的大小,这样加载页面只需要更少的带宽和更少的时间。
    你可以通过这个 Gzip压缩工具 来检测页面是否已经经过Gzip压缩。
  2. 启用Keep-Alive
    HTTP协议采用“请求-应答”模式,当使用普通模式(非KeepAlive模式)时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议);当使用 Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
    在HTTP 1.0中Keep-Alive默认是关闭的,需要在HTTP头中加入“Connection: Keep-Alive”,才能启用Keep-Alive;在 HTTP1.1中Keep-Alive默认启用,加入“Connection: close”可关闭。目前大部分浏览器都是用HTTP 1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看Web服务器的设置情况。
  3. 将小的CSS和JavaScript代码内嵌到HTML中
    如果你的CSS代码比较小,可以将这部分代码放到HTML文件中,而不是一个外部CSS文件,这样可以减少页面加载所需的文件数,从而加快页面的加载。同样,也可以将小的 JavaScript脚本代码内嵌到HTML文件中。

蜘蛛模拟器:这个工具可以分析你的页面,并提供一些优化建议。
图像SEO工具:这个工具可以检查图片的alt标签,并提供一些优化建议。
请求检查器:找出页面中需要加载哪些资源和服务。
链接检查器:检查页面中内部、外部和无效链接。
HTTP头检查:显示网页或资源的HTTP响应头。
社交检查器:检查页面中的社交组件,比如Google 、Facebook、Twitter、Linkedin和Pinterest。
If modified检查器:检查页面是否接受 If-Modified-Since HTTP头。
Gzip检查器:检查页面是否经过了Gzip压缩。
CSS delivery工具:检查页面中所使用的CSS文件。
面包屑工具:可根据你输入的信息提供面包屑导航的代码。
CSS压缩工具:用于压缩CSS代码。

.megaphone {width:50px; height:50px; background:url(images/sprite.png) 0 0px;}
.smile {width:50px; height:50px; background:url(images/sprite.png) 0 -50px;}

[css] view plaincopy

  1. 图像优化

body
{
background-color:#d0e4fe;
}
h1
{
color:orange;
text-align:center;
}

  1. CSS优化
  1. 避免使用document.write
    在JavaScript中,可以使用 document.write在网页上显示内容或调用外部资源,而通过此方法,浏览器必须采取一些多余的步骤——下载资源、读取资源、运行JavaScript来了解需要做什么,调用其他资源时需要重新再执行一次这个过程。由于浏览器之前不知道要显示什么,所以会降低页面加载的速度。
    要知道,任何能够被document.write调用的资源,都可以通过HTML来调用,这样速度会更快。检查你的页面代码,如果存在类似于下面的代码:

这段代码的意思是等待页面加载完成后,然后再加载外部的“defer.js”文件。下面是测试结果。

[html] view plaincopy

尽量减少HTTP请求:常见方法包括合并多个CSS文件和JavaScript文件,利用CSS Sprites整合图像,Image map(图像中不同的区域设置不同的链接),内联图象(使用 data: URL scheme 在实际的页面嵌入图像数据)等。
减少DNS查找
避免重定向
使Ajax可缓存
延迟加载组件:考虑哪些内容是页面呈现时所必需首先加载的、哪些内容和结构可以稍后再加载,根据这个优先级进行设定。
预加载组件:预加载是在浏览器空闲时请求将来可能会用到的页面内容(如图像、样式表和脚本)。当用户要访问下一个页面时,页面中的内容大部分已经加载到缓存中了,因此可以大大改善访问速度。
减少DOM元素数量:页面中存在大量DOM 元素,会导致JavaScript遍历DOM的效率变慢。
根据域名划分页面内容:把页面内容划分成若干部分可以使你最大限度地实现平行下载。但要确保你使用的域名数量在2个到4个之间(否则与第2条冲突)。
最小化iframe的数量:iframes 提供了一个简单的方式把一个网站的内容嵌入到另一个网站中。但其创建速度比其他包括JavaScript和CSS的DOM元素的创建慢了1-2个数量级。
避免404:HTTP请求时间消耗是很大的,因此使用HTTP请求来获得一个没有用处的响应(例如404没有找到页面)是完全没有必要的,它只会降低用户体验而不会有一点好处。

你的Web页面的速度是否已经足够快了?其实可能还有很多可以提升的地方。Google和雅虎也提出了一些Web应用的前端优化建议,并发布了一些工具,你可以逐一检验你的Web应用,以便达到更高的性能。
这些优化不仅仅可以给用户提供更好的体验,从开发者角度来说,进行优化还可以减少页面的请求数、降低请求所占的带宽、减少资源的浪费。
下面来看看Google和雅虎提供的Web页面优化最佳实践。
一、Google的Web优化最佳实践

压缩后:

将CSS代码放在HTML页面的顶部
避免使用CSS表达式:CSS表达式在执行时候的运算量非常大,会对页面性能产生大的影响
使用<link>来代替@import
避免使用Filters:IE独有属性AlphaImageLoader用于修正IE 7以下版本中PNG图片的半透明效果,但它的问题在于浏览器加载图片时它会终止内容的呈现并且冻结浏览器。

[js] view plaincopy

减小cookie大小:去除不必要的coockie,并使coockie体积尽量小以减少对用户响应的影响
针对Web组件使用域名无关的Cookie:对静态组件的Cookie读取是一种浪费,使用另一个无Cookie的域名来存放静态组件是一个好方法,或者也可以在Cookie中只存放带www的域名。

优化图片大小
通过CSS Sprites优化图片
不要在HTML中使用缩放图片
favicon.ico要小而且可缓存

则建议你使用下面的代码来替代。

  1. JavaScript优化
  1. 利用浏览器缓存
    在显示页面时,浏览器需要加载logo、CSS文件和其他一些资源。浏览器缓存所做的工作就是“记住”已经加载的资源,让页面的加载速度更快。
  2. 压缩CSS代码
    不管你在页面中如何使用CSS,CSS文件都是越小越好,这会帮助你提升网页的加载速度。你可以通过 Minify CSS工具 来压缩你的CSS代码。
    压缩前:
  1. 避免CSS @import
    使用 @import方法引用CSS文件可以能会带来一些影响页面加载速度的问题,比如导致文件按顺序加载(一个加载完后才会加载另一个),而无法并行加载。
    你可以使用 CSS delivery工具 来检测页面代码中是否存在@import方法。比如,如果检测结果中存在

[js] view plaincopy

通过以上的优化建议和优化工具,可以轻松找到影响你的Web页面性能的瓶颈,轻松实现Web页面性能的提升。如果你也有Web优化方面的经验,欢迎分享。

  1. 雅虎 YSlow
    YSlow是雅虎推出的一款浏览器插件,可以帮助你对网站的页面进行分析,并为你提供一些优化建议,以提高网站的性能。

[css] view plaincopy

</style>

<link rel="style.css" href="style.css" type="text/css">

Web前端优化最佳实践及工具集锦
发表于2013-09-23 19:47| 34107次阅读| 来源Googe & Yahoo| 124 条评论| 作者王果 编译
Web优化
Google
雅虎
PageSpeed
YSlow
摘要:前端的性能对于Web应用的用户体验来说非常重要。不要以为你的Web应用的性能已经足够好了,其实还会有很多可以提升的地方。本文将介绍Google和雅虎关于前端优化的最佳实践以及工具,你可以逐一检验你的Web应用。
前端的性能对于一个Web应用来说非常重要,如果一个Web应用的页面加载速度非常快、对于用户的操作可以及时响应,那么产品的用户体验将会极大地提升。下图显示了页面加载速度对于用户体验的影响。

使用内容分发网络(CDN):把你的网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。
添加Expires或Cache-Control信息头:对于静态内容,可设置文件头过期时间Expires的值为“Never expire(永不过期)”;对于动态内容,可使用恰当的Cache-Control文件头来帮助浏览器进行有条件的请求。
Gzip压缩
设置ETag:ETags(Entity tags,实体标签)是web服务器和浏览器用于判断浏览器缓存中的内容和服务器中的原始内容是否匹配的一种机制。
提前刷新缓冲区:当用户请求一个页面时,服务器会花费200到500毫秒用于后台组织HTML文件。在这期间,浏览器会一直空闲等待数据返回。在PHP中,可以使用flush()方法,它允许你把已经编译的好的部分HTML响应文件先发送给浏览器,这时浏览器就会可以下载文件中的内容(脚本等)而后台同时处理剩余的HTML页面。
对Ajax请求使用GET方法:当使用XMLHttpRequest时,浏览器中的POST方法会首先发送文件头,然后才发送数据。因此使用GET最为恰当。
避免空的图像src

  1. 避免坏请求
    有时页面中的HTML或CSS会向服务器请求一个不存在的资源,比如图片或HTML文件,这会造成浏览器与服务器之间过多的往返请求,类似于:

在线分析你的网站
安装浏览器插件( Chrome、 Firefox)
通过 Insights API在应用中嵌入PageSpeed功能

三、一些工具

本文由科技中心发布,转载请注明来源:Google 更新 PageSpeed 网页加速服务,帮你打通网页