文章插图
一方面,timeline 总时间变短了 。两者 Loading、Scripting、Rendering 和 Painting 的时间比较接近,但是主动推送 API 后,Idle 从超过 280ms 缩短至 50ms 左右,商家图片的开始加载时间也大幅提前了(视觉上就是餐厅列表瞬间出来了) 。
另一方面,页面的 DOMContentLoaded 和 Load 时间有所提升(在 Network 面板中,没有截图) 。这是意料之中的,客户端在请求 HTML 之后需要同时接收 HTML 和 API 的响应 。这并不影响页面与资源的总体加载时间变短 。
Demo 终究只是 demo 。推送 API 比推送静态资源复杂许多,具体在于大多数 API 是需要带参数的 。即便只推送 GET 方法的 API,也需要带上 query string 和 header 里(包括 Cookie)的参数 。
如果你好奇怎么验证 server push 有没有生效,请打开 Network 面板,你会看到一排漂亮的「Push」:

文章插图
写在最后Server push 还有许多有趣的地方,限于篇幅不能一一赘述 。
最后我补充两点:
- 调试 server push 的正确姿势是用 Chrome 打开 chrome://net-internals/#http2,发了什么帧,收到什么帧,一目了然;
- 只要证书匹配,server push 也可以推送其他 host 的资源 。
推荐阅读
- 淘宝店铺名称可以更改吗 如何修改淘宝店铺名称?其实挺简单的
- 三天搞定头条号黄V认证!就这么简单
- 大暑节气如何养生 简单做到12个字
- 怎样判断酒质的优劣?几个简单实用的小方法教你鉴别好酒
- 涉及DNS的简单操作,只看这一篇就够了
- 不需要软件,用命令简单实现内外网切换指定网段走哪条线路
- 简单的瑜伽怎么练习呢?
- 洗碗池下水道反味怎么办?一个简单的方法,轻松解决,涨知识了
- 简单的发型
- 减肥的简单运动方法有什么?
