前端性能优化
减少 HTTP 请求(打开网页的时候,我们看到的文字,图片,多媒体每个内容都是从服务器获取的,每一个内容的获取,就是一个 HTTP 请求)
- 图片
css sprite
- 图片地图,在一张图片上关联多个 URL,URL 最终指向取决于用户点击的位置
script
合并、css
合并
- 内联图片,通过使用
data:URL
模式可以使页面包含图片但无需额外的 HTTP 请求
使用CDN
内容分发网络(Content Delivery Network
其目的在于让用户可就近取得所需内容,解决网络拥挤的状况,提高用户的访问速度)
压缩javascript
和css
(gzip)
- 去除空格、空白符、注释符
- 简写方法名、参数名,精简
javascript
脚本
css
重用类,删除空的声明
css
放在顶部head
中(css at the top)
script
放在页面底部(script at the bottom)
避免在css
中使用表达式,影响浏览器的性能
将javascript
和css
放在外部文件
- 单独提取
- 提高复用性
- 减小页面体积
- 提高
js
和css
的可维护性
- 可单独缓存
- 写在页面内(样式只应用于一个页面,不被经常访问,脚本和样式很少,不多于 20)
减少 DNS 查询(DNS 查找可以缓存起来以提升性能)
- IE 30m
- Chrome 60s
- Firefox 60s
- 缓存时间长:减少 DNS 重复查找,节省时间
- 缓存时间短:及时检测网站服务器的变化,保证访问的正确性
避免重定向(用户的请求被重新转向其他请求)
- 301:用户请求的页面被移动到其他位置,永久重定向,对搜索引擎更智能
- 302:用户请求的的页面被找到了,但不在原始地址,临时重定向
- 增加了服务器的往返次数
移除重复脚本
- 重复脚本会增加不必要的 HTTP 请求和执行 javascript 所浪费的时间
配置实体标签(Enity Tag
,Web 服务器和浏览器用于确认缓存组件有效的一种机制)
商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用
CC BY-NC-SA 4.0 - 非商业性使用 - 相同方式共享 4.0
国际进行许可。