shaozj / blog

blog
87 stars 4 forks source link

谷歌前端开发指南之优化内容显示效率 #3

Open shaozj opened 7 years ago

shaozj commented 7 years ago

转载自@笑博,翻译自google大牛

    1. 删除不必要的下载(即减少http访问请求)
    2. 优化基于文本的资产的编码和传输大小
    3. 图片优化
    4. 网页字体优化
    5. HTTP 缓存

1. 删除不必要的下载(即减少http访问请求)(最快和最好的优化资源是不需要下载的资源。)

2. 优化基于文本的资产的编码和传输大小

3. 图片优化

在优化图片时,要记住下列技巧和方法:

  • 首选矢量格式:矢量图与分辨率和缩放无关,最适用于多设备或高分辨率的情况。
  • 缩减和压缩 SVG 资源:大多数绘图应用程序生成的 XML 标记通常包含不必要的元数据,可以删除;确保服务器配置为对 SVG 资源采用 GZIP 压缩。
  • 选择最佳光栅图格式:确定功能要求,然后选择适合每个特定资源的格式。
  • 体验光栅格式的最优质量设置:随意降低’质量’设置,效果通常非常好,而字节可能会节省很多。
  • 删除不必要的图片元数据:许多光栅图包含不必要的资源元数据:地理信息、相机信息等。使用适合的工具删除这些数据。
  • 提供缩放的图片:调整服务器上的图片尺寸,确保’显示’尺寸尽可能接近图片的’自然’尺寸。尤其要密切关注较大的图片,因为这些图片在调整尺寸时,占用了最大的额外开销!
  • 自动:投资自动化的工具和基础设施,这样,可以确保所有图片资源始终会进行优化。

4. 网页字体优化

5. HTTP 缓存

在定义缓存策略时,要记住下列技巧和方法:

  • 使用一致的网址:如果您在不同的网址上提供相同的内容,将会多次获取和存储该内容。提示:注意,网址区分大小写!
  • 确保服务器提供验证令牌 (ETag):通过验证令牌,如果服务器上的资源未被更改,就不必传输相同的字节。
  • 确定中继缓存可以缓存哪些资源:对所有用户的响应完全相同的资源很适合由 CDN 或其他中继缓存进行缓存。
  • 确定每个资源的最优缓存周期:不同的资源可能有不同的更新要求。审查并确定每个资源适合的 max-age。
  • 确定网站的最佳缓存层级:对 HTML 文档组合使用包含内容指纹码的资源网址以及短时间或 no-cache 的生命周期,可以控制客户端获取更新的速度。
  • 搅动最小化:有些资源的更新比其他资源频繁。如果资源的特定部分(例如 JavaScript 函数或一组 CSS 样式)会经常更新,应考虑将其代码作为单独的文件提供。这样,每次获取更新时,剩余内容(例如不会频繁更新的库代码)可以从缓存中获取,确保下载的内容量最少。