对“优化网站速度”的几点补充
如果你对标题感到了深深的疑惑,来这里(优化网站速度的几种方式)看看先:-)
首先要补充解释下一个叫“性能黄金法则”的东东:
只有10%~20%的最终用户响应时间花在了下载HTML文档上。其余的80%~90%时间花在了下载页面中的所有组件上。
这里说的组件就是网站中的图片,CSS和脚本等等。所有着重优化的地方就在这些组件上面了。
第8点:把JavaScript和CSS放到外部
把JavaScript和CSS放到外部的优势我就不用讲了,不过我确看到在诸如像腾讯,淘宝,网易等这样的访问量巨大的网站中的首页使用了内联,并非把脚本和样式外置,而令我疑惑不解的是这种现象只在首页上出现,在查找和翻页相关资料后我找到了答案。
在这些网站中,首页的布局和内页有着很大的区别,也就是首页上的组件重用率很低,而且也有很大一部分的访客只访问了首页。首页的访问量是巨大的,很多企业都希望能有更快的访问速度,使用内联的会比外置来的快些,毕竟减少了HTTP请求次数,当然这也要考虑到缓存的影响,拥有缓存的访客和空缓存的访客(也包括喜欢关闭浏览器清楚缓存的人)这个也比较难以量化。
到底是用外置还是内联这个也没有明确的答案,还有挺多门户网站使用了外置,所有这个主要还是要看企业的决策,但是对于访问量不是很大很大的网站我还建议使用外置。
第7点:避免使用CSS表达式(Expression)
现在大部分的人都会说使用使用CSS表达式会影响性能问题,不过有个和简单的方法解决了这个性能问题,在这里查看(需要*代*理,可恶的文×字@狱),简单的引用:
因为我发现,第一个缺点是可以解决的。方法就是,在 expression 语句体里面,将触发该 expression 的 css 属性重置。比如
body{ zoom: expression(function(ele){ele.style.zoom = "1"; alert("xx");}(this));},执行这段 CSS 会发现,alert 只跑了一次。
没有了性能问题,那么就能解决了很多IE6的bug,但是我还是建议不要用,首页微软已经在IE8取消了对CSS表示的支持,这也表明了微软也打算放弃这个了,另外如果要修复IE6的一些BUG或增加功能等,推荐使用IE7.js。在早些文章你能找到。
第10点:压缩和削减JavaScript和CSS
目前压缩JavaScript主要有混淆和精简。混淆能比精简多压缩些,不过这样得不偿失,特别是在通过了Gzip压缩后效果都是差不多。
在早些时候我也有过这样的疑问,如果启用了gzip压缩,是否要对脚本进行精简。这里简单的说下,如果你启用了gzip压缩后在对脚本进行精简的话还是能减小大小。
最后跟新下:推荐使用YAHOO的Yslow