2010-7-30 Update: 对于”Transfer-Encoding:chunked”HTTP响应头,虽然说它可以使得服务器可以以小块数据包的形式连续的发送HTML内容回来,或许有些人会认为:为什么不让他应用于Js,CSS呢,这样使得JS,CSS可以边加载边解析。理论上是可以的,但是实际是会崩溃的,在JS,CSS的响应头中应用它的时候,会造成JS,CSS加载失败,很悲剧的事情…… 2010-6-2 Update: 今天捣鼓了下设置HTTP文档的响应头Transfer-Encoding:chunked。对于Transfer-Encoding的作用,在《高性能网站建设指南》中所说的就是“块编码”,它是HTTP/1.1引入的,使用它HTML文档可以被分成多个数据块立即返回,而不需要浏览器知道数据的大小和确定响应的结束时间,这就允许浏览器在下载数据包后马上进行解析,使得页面的加载速度更快。而HTTP/1.0是通过Content-Length头来发送的,而且还是将HTML一整块的发送,所以浏览器在响应结束之前,不会开始渲染页面和下载资源。 可是经过一上午的折腾,给页面加上了这个HTTP头之后,出错了,Chrome下返回错误“ERR_INVALID_CHUNKED_ENCODING”。郁闷了很久,之后在HTTPWatch官方博客上看到关于这个的文章《Content Length & Transfer Encoding》,在文章的Example中提到了一句话提醒了我:“if you are accessing this page through a proxy it … 了解更多
昨天接触到这篇文章《Best Practices for Speeding Up Your Web Site》,觉得太经典了,自己不由自主的想要翻译过来,鉴于本人的英语水平,只翻译了其中的某些条目,有错误在所难免。更多的还是推荐浏览原文。 首先的说明的是:优化页面显示速度,就是不管HTML内容多与少,都要尽量在最快的速度显示出来,这就是Front-end engineers首要明确的意图。所以下面所提及的优化方式,都是从这一目的出发的。下面的翻译的一些条目: 1.最小化HTTP request请求。因为一个页面显示所花费的时间很多都是花费在scripts,stylesheets,images,flashs等等,这些都会通过http request来加载,这些大概占用了页面加载时间的70%-80%,因此,减少HTTP request能很大的优化页面的加载速度。 2.使用第三方的代理服务器来加载scripts,stylesheets等等,这能降低本主服务器的负载,比如google ajax api提供的目前流行的js库:jquery,extjs,prototype,MooTools等等 3.在头部声明cache的expire。在用户第一次view页面的时候会加载全部的内容,包括html以及scripts,stylesheets,images等等,设置了cache的expire一方面能使得用户在下次view页面的时候能从缓存里读取一些数据,减少了HTTP Request的请求数,加快页面的显示。不过这要看用户view页面的回头率是否频繁。设置了cache的expire也要适当。一方面能加快加载速度,另一方面也有助于在cache的expire过期的时候使得用户获得页面的最新数据信息。 4.使用压缩技术(Gzip … 了解更多