虽然从开发工具获取时间很容易firstPaint
,但有没有办法从 JS 获取时间?
问问题
2350 次
3 回答
6
是的,这是绘制时间 API的一部分。
您可能需要 的时间first-contentful-paint
,您可以使用它:
const paintTimings = performance.getEntriesByType('paint');
const fmp = paintTimings.find(({ name }) => name === "first-contentful-paint");
enter code here
console.log(`First contentful paint at ${fmp.startTime}ms`);
于 2017-06-05T08:37:05.137 回答
2
最近,PerformanceObserver和PerformancePaintTiming等新的浏览器 API使得通过 Javascript 检索 First Contentful Paint (FCP) 变得更加容易。
我制作了一个名为Perfume.js的 JavaScript 库,它只需要几行代码
const perfume = new Perfume({
firstContentfulPaint: true
});
// ⚡️ Perfume.js: First Contentful Paint 2029.00 ms
我知道您询问了 First Paint (FP),但建议您改用 First Contentful Paint (FCP)。
这两个指标之间的主要区别是 FP 标记浏览器呈现与导航之前屏幕上的视觉不同的任何内容时的点。相比之下,FCP 是浏览器从 DOM 渲染第一个内容的点,它可能是文本、图像、SVG,甚至是画布元素。
于 2018-01-20T22:53:47.897 回答
1
if(typeof(PerformanceObserver)!=='undefined'){ //if browser is supporting
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log(entry.entryType);
console.log(entry.startTime);
console.log(entry.duration);
}
});
observer.observe({entryTypes: ['paint']});
}
这将帮助您在启动 js 应用程序之前将此代码粘贴到其他所有内容之前。
于 2018-05-24T12:01:03.287 回答