我用Lighthouse测移动端页面,FID老是超过300ms,明明没写啥复杂交互啊。点按钮时确实有明显卡顿,试过把事件监听器改成passive: true,但没啥改善。
关键代码就这段,绑了个点击处理:
document.getElementById('btn').addEventListener('click', function() {
fetchData().then(renderList);
});
是不是因为fetchData里有大量DOM操作?但数据量也不大啊,求指点到底卡在哪了……
首先,检查一下
fetchData和renderList这两个函数的具体实现。即使数据量不大,如果DOM操作频繁或者复杂,也可能导致性能问题。你可以试试把这个渲染过程拆分成更小的任务,利用requestIdleCallback或者setTimeout来分批处理。另外,确保你的
fetchData请求尽量高效,避免不必要的网络延迟。可以考虑缓存数据或者使用Service Worker来加速数据获取。最后,可以用Chrome DevTools的Performance面板来详细分析一下具体是哪一部分代码导致了卡顿,这能给你更精确的优化方向。
试试这个方法,希望对你有帮助。