改善 web 性能的措施

以下为个人认为有必要记录的笔记 不喜勿喷

Content

  1. 尽可能的减少HTTP请求

减少组件(图片,脚本,样式表、Flash等)的数量,并由此减少http请求的数量。

  • CSS Sprites:

将多个图片合并到一个单独的图片中,再结合css的background-position属性一起使用,通过合并图片减少http请求。

适用场景:若需要在页面中为背景,按钮,导航栏,链接等提供大量图片,可使用CSS Sprites。

  • 合并脚本和样式表:

若不同页面需要不同的脚本,可能脚本合并的组合数会比较多。

  1. 使用 CDN(内容分发网络)
  • DNS缓存:

在用户请求了一个主机名后,DNS信息会留在操作系统的DNS缓存中,之后对于该主机名的请求将无需进行过多的DNS查找。

  • 通过使用keep-Alive和较少的域名来减少DNS查找:

keep-Alive通过重用现有连接避免了重复的DNS查找,减少唯一主机名的数量可以减少DNS查找。

  • 建议:

可以将组件分别放在至少2个,但不要超过4个主机名下,这是在减少DNS查找和允许高度并行下载之间作出的很好的权衡。

  1. 避免重定向

重定向会延迟整个HTML文档的传输,在HTML文档到达之前,页面中不会呈现出任何东西,也没有任何组件会被下载。

  1. 使 AJAX 可缓存
  2. 压缩组件(使用gzip编码压缩http响应包)

压缩HTML文档、样式表和脚本。

压缩成本:服务器端会花费额外的CPU周期来完成压缩,客户端要对压缩文件进行解压缩。

  1. 预加载组件
  2. 减少 DOM 元素的数量
  3. 将组件分散在多个域
  4. 最小化 iframe 框架的数量
  5. 避免 404 状态码的出现
  6. 减少 DNS 查找

运用浏览器缓存。

Server

  1. 使用 CDN
  2. 添加 Expires 或 Cache-Control 头
  3. 使用 gzip 压缩组件
  4. 配置实体标签 Etags
  5. 尽早释放服务器缓存
  6. 使用 get 发送 Ajax 请求
  7. 避免出现空的 img src
  8. 使用 AJAX 缓存
  • 分批加载
  • 局部更新

Cookie

  1. 减少 cookie 的尺寸

cookie存放在本地,但是每次发送服务器请求的时候都会被发送到服务器端。

  1. 针对 Web 组件使用域名无关性的 Cookie

CSS

  1. 把 CSS样式表用 link导入放在顶部

避免页面出现空白或者闪烁。

  1. 避免使用 CSS 表达式
  2. 优先选择用 link 导入CSS样式而不是 @import
  3. 避免使用过滤器

JavaScript

  1. 把 JavaScript 放在底部
  2. 使用外部的JavaScript和CSS
  • 提高组件的重用率。
  • 减小了页面体积。
  • 提高了组件的可维护性。

写在页面内的情况:

  • 只应用于一个页面的时候。
  • 不经常被访问到的页面。
  • 脚本和样式很少的情况下。
  1. 精简 JavaScript 和 CSS
  • 去除不必要的空格符、格式符、注释符。
  • 简写方法名、参数名压缩 JS脚本。
  1. 移除重复的脚本
  2. 最小化 DOM 访问
  3. 开发智能事件处理程序

Images

  1. 使用比较小的图片
  2. 使用 CSS Sprites(合图)
  3. 不要在 HTML 中使用 图片的缩放方法

会调用浏览器本身的一些渲染引擎。

  1. 让图标资源小一些并使其可缓存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值