减少 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 所浪费的时间
评论