1.减少http请求次数
图片方面:雪碧图,应用场景:合并背景图片和小图标;database64—转换图片
合并js css文件
2.样式放在头上
原因:样式放在头上,浏览器解析结构时就可以对页面进行渲染了,而不需要等到结构解析完,再去用css渲染页面了,先出现光秃秃的结构页面在绚丽起来
3.脚本文件放在底部
浏览器会阻塞加载直到样式文件加载完毕,因此脚本文件被放在下面,否则脚本后面的文件加载将被阻塞,
阻塞并行下载数量,一般浏览器的js并行下载数量为两个,同时间不能下载更多,—(但图片可以超过两个并行下载)
4.避免css 表达式
不仅页面显示和resize时计算表达式,而且当页面滚屏,甚至当鼠标在页面上移动时都会重新计算表达式
5.js和css从外部引入
文件从外部引入会加快页面的显示速度,因为外部文件会被缓存,在页面中虽然减少了http次数,但增大了页面大小
6.最小化js代码
两个流行的工具是#JSMin和YUI Compressor。混淆是最小化于源码的备选方式
7.避免重定向
注意:重定向会增加http请求的次数,但必要的重定向又可以提高用户体验
避免重定向的方式
1.在定义链接地址href属性时,尽量使用全的,直接的链接地址,如:
-使用www.cnblogs.com 而不是cnblogs.com
-使用cn.bing.com 而不是bing.com
-使用www.google.com.hk 而不是google.com
-使用www.mysite.com/products/ 而不是 www.mysite.com/products
2、在使用Response.Redirect的时候,设置第二个参数为false – 待理解
-考虑是否可用Server.Execute代替
-考虑Respone.RedirectPermanent
3、如果涉及到从测试环境到生产环境的迁移,建议通过DNS中的CNAME的机制来定义别名,而不是强制地重定向来实现 –待理解
8.删除重复的脚本文件
合理封装js代码,减少不必要的http请求,使用模版系统建立脚本管理模块
9.缓存ajax
10.使用CDN(Content Delivery Network,内容分发网络)
11.增加Expires Header
12.减少DNS查询次数
注意:减少主机域名可减少DNS查询次数,但可能会造成并行下载数的减少,一个可行这种的办法是把资源部署到2-4个不同的主机名上
DNS解析域名时浏览器不会进行下载