收藏
回答

小程序是否有可能实现 Element Timing API?

W3C draft: https://wicg.github.io/element-timing

MDN doc: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming

这个特性允许开发者获取 DOM 元素渲染时的一些性能指标,例如 renderTime 和 size,从而进行细粒度的上报打点。

<p elementtiming="text" id="text-id">text here</p>
<script>
  const observer = new PerformanceObserver((list) => {
    list.getEntries().forEach((entry) => console.log(entry));
  });
  observer.observe({ type: "element", buffered: true });
</script>


应用场景大概是:

  • 结合 Performance Entry 中的渲染耗时和自行标记的 meaning point 计算精确的 FMP
  • 监控某个页面元素的曝光(可能和 IntersectionObserver 有重合)

由于目前仅 Chrome 77+ 实现该特性,因此在小程序 Webview 内恐怕很难实现跨平台的等价实现(至少拿不到精确的 renderTime)。

不过在 Skyline 下,小程序有完整控制渲染流程的能力,因此我认为这是有可能的。

回答关注问题邀请回答
收藏
登录 后发表内容