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 下,小程序有完整控制渲染流程的能力,因此我认为这是有可能的。