欢迎来到天天文库
浏览记录
ID:24895916
大小:50.68 KB
页数:5页
时间:2018-11-16
《高性能网站建设指南:性能提升及14个原则》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、尚武教育www.swtechedu.com高性能网站建设指南:性能提升的14个原则原则1减少HTTP请求数 构造请求、等待响应需要时间,因此请求数量越少越好。减少请求的总体思路就是合并资源,减少显示一个页面需要的文件数。 1.ImageMap 通过设置标签的usemap属性与使用标签可以在一幅图片上切分出多个区域,指向不同的链接。比起使用多幅图片分别构造链接减少了请求数。 2.CSSSprite(CSS贴图整合/贴图拼合/贴图定位) 通过设置元素的background-position样式做到。一般用于界面图标。典型的可以参考TinyMCE
2、编辑器上方的那些小按钮。多个小图实质是从一个统一的大图通过不同的偏移量裁剪而来,这样加载界面上的众多按钮实际上只要请求一次(请求大图一次),从而减少HTTP请求数。 3.InlineImage(内联图片) 在的src中不指定外部图片文件的URL,而是直接将图片信息放入。例如src="/”data:image/gif";base64,R0lGODlhDAAMAL...”某些特殊情况下有用(例如一个不大的图片仅在当前页面用到)。 原则2利用多线路CDN 为你的站点提供多种线路(例如国内电信、联通、移动)、多个地理位置(北方、南方、西部)的访问,使
3、得所有用户都能够快速访问。尚武教育www.swtechedu.com 原则3利用HTTPCache 给不频繁更新的资源(例如静态图)加较长的Expires头信息,这些资源一经缓存,未来很长时间都可以不再重复传输了。 原则4使用Gzip压缩 使用Gzip压缩HTTP报文,减小体积,减少传输时间。 原则5将样式表置于页面前部 先加载样式表,这样页面渲染得以较早开始,给用户页面加载较快的感觉。 原则6将脚本置于页面尾部 原因同5,先处理页面显示,页面渲染较早完成,而脚本逻辑稍后执行,这样给用户页面加载较快的感觉。 原则7避免使用CSS表达
4、式 过于复杂的Java脚本逻辑、DOM查找、选择操作将会降低页面处理效率。 原则8将Java与CSS作为外联资源尚武教育www.swtechedu.com 这似乎与原则1中的合并思想相悖,但其实不然:考虑每个页面都引入了一个公共的Java资源(例如jQuery或是ExtJS这样的Java库),单就一个页面的表现来看,内联(即将Java嵌入HTML)页面将比外联(使用<>标签引入)页面加载更快(因为其较少的HTTP请求数)。但如果有很多页面都引入了这个公共Java资源,那么内联方案会造成重复传输(因为这个资源内嵌在每个页面中了,所以每次打开一个页
5、面都要将这部分资源传输一遍,从而造成网络传输资源的浪费)。而将这种资源独立出来外联引用可以解决这个问题。 由于Java和CSS相对稳定,我们可以对其对应的资源设置较长的失效期(参考原则3)。 原则9减少DNS查找 作者给出的建议是: 1.使用Keep-Alive保持连接 如果连接断开,那么下次连接又要执行DNS查找,即使对应的域名-IP映射已被缓存,查找也是要消耗一些时间的 2.减少域名 每次请求新域名都需要进行通过DNS查找不同的域名,且DNS缓存无法发挥作用。因此应该尽量将站点组织在一个统一域名下,避免使用过多子域名 原则10压缩
6、你的Java 使用JS压缩工具压缩你的Java吧,很有效哦。看看jQuery的两个不同的发行版本就知道区别了: 原则11尽量避免重定向 一次重定向意味着在你真正访问到想要看到的页面前加入了一轮额外的HTTP请求(客户端发起HTTP请求→HTTP服务器返回重定向响应→客户端对新URL发起请求→HTTP服务器返回内容,下划线部分为额外的请求),因此消耗更多的时间(也就给人反应更慢的感觉)。因此除非必要,不要随意使用重定向。几个“必要”的情况:尚武教育www.swtechedu.com 1.避免URL失效 旧站点迁移后,为了避免旧的URL失效,通
7、常将对旧URL的请求重定向至新系统的对应地址。 2.URL美化 在可读性好的URL与实际资源URL之间转换,例如对于GoogleToolbar,用户记得住http://toolbar.google.com这个对人类富有语义的地址,却很难记住http://www.google.com/tools/firefox/toolbar/FT3/intl/en/index.html这个真正的资源地址。因此有必要保留前者,并且将对前者的请求重定向至后者。 原则12移除重复的脚本 不要在一个页面中重复引入相同的脚本。例如脚本B和C都依赖于A,那么在使用了B和
8、C的页面中就有可能存在对A的重复引用。解决方法,对于简单的站点手动检查依赖性,消去重复引入;对于复杂的站点则
此文档下载收益归作者所有