https://amp.dev/documentation/guides-and-tutorials/

AMP的优点

https://amp.dev/about/how-amp-works/

  1. <!doctype html>
  2. <html amp lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Hello, AMPs</title>
  6. <link rel="canonical" href="https://amp.dev/documentation/guides-and-tutorials/start/create/basic_markup/">
  7. <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
  8. <script async src="https://cdn.ampproject.org/v0.js"></script>
  9. <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style>
  10. <noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  11. </head>
  12. <body>
  13. <h1 id="hello">Hello AMPHTML World!</h1>
  14. </body>
  15. </html>
  1. <amp-img src="https://source.unsplash.com/Ji_G7Bu1MoM/600x400" width="600" height="400" layout="responsive"></amp-img>
  2. <amp-img src="https://source.unsplash.com/Ji_G7Bu1MoM/600x400" height="400" layout="fixed-height"></amp-img>

AMP 图片 按需加载,只有当滚动条滚动到快要接近可视区域,才会渲染img

image.pngimage.png

AMP Cache

AMP 缓存是一种基于代理的内容传送网络 (CDN),用于传送有效的 AMP 文档。AMP 缓存旨在:

  1. 仅提供有效的 AMP 网页。
  2. 让 AMP 网页能够安全且高效地预加载。
  3. 对内容执行额外的性能优化措施,以提升用户体验。

谁会请求缓存的AMP页面?
缓存的 AMP 网页会被各类平台(如 Google 搜索、Google 新闻和 Cloudflare)和移动应用访问。移动应用可通过网址(请参阅 Google 的 AMP URL API)或通过渐进式网页应用中的跨源 XHR(详情请见嵌入 AMP 网页并将其用作数据源)关联到缓存的 AMP 内容。
如何实现?
平台可通过 或 标记发现您的 AMP 内容,进而缓存该内容。例如,Google 搜索会抓取内容;对于任何已被识别出的有效 AMP 网页,系统都会自动将相应内容添加到 Google AMP 缓存中。

AMP的好处

  1. 快速加载
  2. 减少页面复杂度
  3. Google搜索结果对AMP页面有预加载处理,更快地到达页面

AMP 图片 优化

占位符和回退 响应式图片

占位符可以用背景来做

  1. .img-placeholder {
  2. background-size: 100%;
  3. background-image: url('placeholder.png');
  4. }

当前处于display: none的情况下,图片不会被加载

webp支持

在以下示例中,我们使用该fallback属性告诉浏览器在不支持 WebP 格式时使用 JPEG 文件。

  1. <amp-img alt="Mountains"
  2. width="550"
  3. height="368"
  4. layout="responsive"
  5. src="/static/inline-examples/images/mountains.webp">
  6. <amp-img alt="Mountains"
  7. fallback
  8. width="550"
  9. height="368"
  10. layout="responsive"
  11. src="/static/inline-examples/images/mountains.jpg"></amp-img>
  12. </amp-img>

响应式图片

  1. <amp-img alt="Hummingbird"
  2. src="/static/inline-examples/images/hummingbird-wide.jpg"
  3. width="640"
  4. height="457"
  5. srcset="/static/inline-examples/images/hummingbird-wide.jpg 640w,
  6. /static/inline-examples/images/hummingbird-narrow.jpg 320w"
  7. sizes="(min-width: 650px) 50vw, 100vw">
  8. </amp-img>