要并行还是要cookieless
优化wp,一个困扰我一个多星期的话题。
其中有一个方法就是用cookieless的域名来放置静态的内容。于是就有了个叫“图床”的词语出现,图床啥意思?请看Kangzj的解释。图床是建立在一个cookieless域名下的东西,顾名思义是用来放“图”的,但也用来放.css,.js等静态文件,由于域名是cookieless的,所以在传递过程中无需做无谓的小饼干来往,因此加快速度。如何为网站(尤指wp搭建的窝)建立cookieless的图床呢?详见:
- Showfom的提高 WordPress 速度之独立域名图床
- 大猫的Cookie-free Domains Yslow 极限页面性能优化(这个网址即便不开也要好好好欣赏啊,请诸位鼠标指一指,保管你笑半死) 。
cookieless真能提速,尤其是反应速度。但blog里全部图都放到某个cookieless的地方就是最快?不才的xrspook在折腾cookieless的时候经常借助http://www.webpagetest.org/测试X领地,不经意发现了个天知地知但xrspook不曾知道的东西——浏览器的并行下载!减少DNS查询是网站提速的又一重点,多个hostname就要求进行多次DNS查询,但如果不多,就2个呢?呵呵,这就是我要说的重点。
话说在建立了cookieless域名后,xrspook把所有静态图片都搬到了那里,毕竟那只是ftp的无聊操作而已。但接下来要把所有的图片都重新更改链接可不是开玩笑的,很懒的xrspook就只把一些图片的网址改了过来,先看看效果,惊讶地让xrspook首次看到了不同hostname的并行下载!很是厉害,普通的测速图里进度条都是成阶梯式分布的,上一个要进行到一定程度下一个才开始,所以,如果你的页面有很多很多的图片等非单纯文字的东西,那就杯具了,鉴于X领地模板的“美观性”,这里有不少的图片(简称CSSIMG)。(咋的?你没看到?圆角的都是图片,谁叫浏览器还不能广泛接纳CSS3啊,还有很多按钮底图什么的)而由于个人兴趣的需要,在sidebar加入了个叫做“鬼在这里”的文本widget(简称LOGO),不用多说,里面的也是静态图片。懒人我最开始的时候只是把LOGO的链接改过来了,CSSIMG的没改,做了测速,发现了并行法则,(见下,左图)。
并行很牛,但我的CSSIMG还没改呢,兴冲冲地把所有CSSIMG的网址也都改了,期待完美减少cookie的历史时刻。好不容易借着Firefox的页面高亮查找把CSSIMG都改好了,做个测速。(见上,右图)
(点击图片得详细测速报告)
我的天!图片半cookieless(即并非所有静态图片都放在cookieless域名)的时候,载入时间是4.654s,而全cookieless的时候载入时间却需要5.425s,差了接近0.8s,但后者的start rander(这个是什么?就是Firefox出现“载入中”或者Google Chrome“进度条逆时针转动”的时间)比前者快0.107s,归根到底就是First Byte那里快出的0.107s,是不是不传递某些小饼干的优势呢?到底是什么造成这个严重的0.8s差距呢?聪明的你或许发现了,在测速的前期,两者差距很小,但后期大量(接近15个)静态图片传递时,优势就很明显呢。前一个的阶梯“很陡”,后一个的阶梯“很缓”,在载入的这个问题上,我喜欢阶梯很陡,垂直的更好。显然,图片半cookieless时做出的hostname并行下载优势在X领地强于全cookieless的无小饼干交易。
事实胜于雄辩!
当Google和Yahoo的测速软件都告诉我们cookieless domain很好的时候,我们要相信,但不能尽信,毕竟问题得综合考虑。机器能告诉我们单项的完美解决办法,但适合自己的才是最完美的,而最适合的只有自己衡量后才能得出。
最后,X领地的提速效果是“并行>cookieless”,于是我选择把静态图片做成半静态的。
各位玩wp的朋友,什么形式的提速才最适合你们呢?实战一下吧!
PS小贴士:
在做cookieless图床的时候你或许还需要用到以下链接: