如何使用 JavaScript 获取当前页面帧率 FPS
可以通过计算每秒 window.requestAnimationFrame
的调用频率来做为 FPS 值。它接收一个回调函数,该回调函数会在浏览器下一次重绘之前执行。所以只要我们循环调用并记录单位时间内的调用次数就能计算当前页面的帧率了。
效果展示
在线预览 - 使用 JavaScript 获取当前页面帧率 FPS
实现代码
html:
<p>当前FPS:<span id="fps"></span></p>
js:
let last = Date.now();
let ticks = 0;
//循环调用 requestAnimationFrame
function rafLoop(timestamp) {
ticks += 1;
//每30帧统计一次帧率
if (ticks >= 30) {
const now = Date.now();
const diff = now - last
const fps = Math.round(1000 / (diff / ticks));
last = now
ticks = 0
renderFps(fps);// 刷新帧率数值
}
requestAnimationFrame(rafLoop);
}
let fpsEl = document.getElementById('fps');
//显示帧率数值到界面上
function renderFps(fps) {
fpsEl.textContent = fps;
}
//开始执行
rafLoop();