content 方面
- 减少
HTTP
请求:合并文件、CSS
精灵、inline Image
- 减少
DNS
查询:DNS查询完成之前浏览器不能从这个主机下载任何任何文件。方法:DNS缓存、将资源分布到恰当数量的主机名,平衡并行下载和DNS查询 - 避免重定向:多余的中间访问
- 使
Ajax
可缓存 - 非必须组件延迟加载
- 未来所需组件预加载
- 减少
DOM
元素数量 - 将资源放到不同的域下:浏览器同时从一个域下载资源的数目有限,增加域可以提高并行下载量
- 减少
iframe
数量 - 不要
404
- 减少
Server 方面
- 使用
CDN
- 添加
Expires
或者Cache-Control
响应头 - 对组件使用
Gzip
压缩 - 配置
ETag
- 尽可能早地发送缓冲区内容(Flush Buffer Early)
- Ajax使用GET进行请求
- 避免空
src
的img标签(iframe)
- 使用
Cookie 方面
- 减小
cookie
大小 - 引入资源的域名不要包含
cookie
- 减小
css 方面
- 将样式表放到页面顶部
- 不使用CSS表达式
- 减少使用
@import
- 不使用IE的
filter
- 尽量避免写在HTML标签中写style属性
Javascript 方面
- 将脚本放到页面底部
- 将javascript和css从外部引入
- 压缩javascript和css
- 删除不需要的脚本
- 减少DOM访问
- 合理设计事件监听器
- 多个变量声明合并
图片方面
- 优化图片:根据实际颜色需要选择色深、压缩
- 优化css精灵
- 不要在HTML中拉伸图片
- 保证
favicon
小并且可缓存
移动方面
- 尽量使用css3动画,开启硬件加速
- 适当使用
touch
事件代替click
事件 - 避免使用css3渐变阴影效果
- 可以用transform: translateZ(0)来开启硬件加速
- 不滥用Float,Float在渲染时计算量比较大,尽量减少使用
- 不滥用Web字体,Web字体需要下载,解析,重绘当前页面,尽量减少使用
- 合理使用requestAnimationFrame动画代替setTimeout
- CSS中的属性(CSS3 transitions、CSS3 3D transforms、Opacity、Canvas、WebGL、Video)会触发GPU渲染,请合理使用。过渡使用会引发手机过耗电增加
- PC端的在移动端同样适用
网站性能优化方案
最后更新时间: