what?
Accelerated Mobile Pages,加速移动网页
项目相关文档:
官网
github
amp html规范
演示
体验地址(好吧国内好像并体验不到~)
整体思路:
- 将跳转至的复杂内容页精简至仅剩“内容”(以及规范后的广告..)
- 用户查看内容时由网页跳转改为仅拉取“内容”展现
实施:
- 搜索方提供规范
- 内容提供方提供符合规范的页面供抓取(至amp cache)展现
推广普及:
- 搜索结果页优先展现amp内容(横向滚动汇聚)
适应场景:
新闻、阅读类内容
加速思路:
- 缩减完整html至特定子集、增强限制
- 牺牲灵活性,提供更高抽象层次的扩展标签/组件
- 替代灵活但需自行组装处理的底层html标签
- 省去用户自定义实现
- 实现针对性优化
- 限制样式的使用并禁止脚本的使用以降低/去除相应时间消耗
具体加速点:
- 禁止内容提供方在直接页面中使用js,amp本身的js也async加载
- 免去了js对渲染的阻塞
- 允许iframe中加载js等,但不会影响至主页面
- 图片与iframe等资源内容需静态指定其尺寸
- 避免回流
- amp提供的扩展组件不阻塞渲染
- 只允许内联样式表且限制在50k以内,且只允许特定选择器与样式的使用
- 减少css阻塞渲染的时间
- 字体立即下载
- 所有script为async、没有外联样式表,故可达到
- 仅允许GPU加速的动画
- 仅允许transform及opacity动画(不触发layout,可仅由GPU即完成)
- 控制资源加载优先级
- 按优先级加载、预加载等优化方案
- 搜索结果页(及内容页内?)进行必要的preconnect