内容
尽量减少HTTP请求数
减少DNS查找
从输入 URL 地址栏到所有内容显示到界面上的其中一个步骤就是查找 DNS。
DNS解析:将域名解析为 ip 地址,由上往下匹配,只要命中便停止。
- 走缓存
- 浏览器 DNS 缓存
- 本机 DNS 缓存
- 路由器 DNS 缓存
- 网络运营商服务器 DNS 缓存(80%的 DNS 解析在这完成的)
- 递归查询
优化策略:尽量允许使用浏览器的缓存,能给我们节省时间。
避免重定向
让Ajax可缓存
延迟加载组件
预加载组件
减少DOM元素的数量
跨域分离组件
杜绝404
服务器
使用CDN(Content Delivery Network)
添上Expires或者Cache-Control HTTP 头
Gzip
配置ETags
尽早清空缓存区
对Ajax用GET请求
避免图片src属性为空
CSS
https://pustelto.com/blog/optimizing-css-for-faster-page-loads/?ref=sidebar
把样式表放在顶部
避免使用CSS表达式
把CSS放到外面
压缩CSS
舍弃@import
避免使用滤镜
JavaScript
把脚本放在底部
js的阻塞性
把JavaScript放到外面
压缩JavaScript
去除重复脚本
尽量减少DOM访问
用智能的事件处理器
给Cookie减肥
把组件放在不含cookie的域下
图片
优化图片
优化CSS Sprite
不要用HTML缩放图片
用小的可缓存的favicon.ico
移动端
保证所有组件都小于25k
把组件打包到一个复合文档里
参考:
要看的书:
- 高性能JavaScript
- 高性能网站建设进阶指南
- 高性能网站建设指南