如何进行Web程序性能优化🛁

浏览器

html

  • 减少DOM数量

  • 不要在HTML中拉伸图片 (会重新绘制)

css

  • 避免重复定义CSS,CSS覆盖等
  • 不使用CSS表达式

javascript

  • 减少DOM访问(避免重绘 和 回流)
  • 合理设计事件监听器
  • 避免 DOM 阻塞 (JavaScript放在最后面,或者加上defer 标签)

资源

  • 静态资源压缩,使用CDN

缓存

  • 客户端缓存
  • 服务端缓存
  • http 缓存

网络Http

  • 减少 HTTP 请求数量(合并文件、CSS精灵 (图片合成)、inline Image)
  • 减少 HTTP 请求大小
  • 添加Expires或者Cache-Control响应头

服务器

  • nginx 开启 gzip 压缩
  • 减小cookie大小
  • 引入资源的域名不要包含cookie

content方面

  • 减少HTTP请求:合并文件、CSS精灵 (图片合成)、inline Image
  • 减少DNS查询:DNS查询完成之前浏览器不能从这个主机下载任何任何文件。方法:DNS缓存、将资源分布到恰当数量的主机名,平衡并行下载和DNS查询
  • 避免重定向:多余的中间访问
  • 使Ajax可缓存
  • 非必须组件延迟加载 ( 插件,组件,图片等懒加载同理 )
  • 未来所需组件预加载
  • 减少DOM元素数量
  • 将资源放到不同的域下:浏览器同时从一个域下载资源的数目有限,增加域可以提高并行下载量
  • 减少iframe数量
  • 避免404

Server方面

  • 使用CDN
  • 配置ETag
  • Flush Buffer Early
  • Ajax使用GET进行请求