How to free system resources/CPU usage on webpage?
我正在使用以下HTML模板:http://volar.makwan.net/index02.html
我的许多用户在查看网站时笔记本电脑和上网本上的CPU使用率很高,当他们在网站上停留超过几分钟时,Safari也会显示此消息:"此网页耗费了大量精力。关闭它可以提高Mac的响应速度。"
我释放资源的第一个尝试是,当用户使用以下代码从主屏幕滚动离开时,摆脱平面着色器效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | window.onscroll = function() { let home = document.getElementById('home-section'); let effect = document.getElementById('fss'); if(!isElementInViewport(home) && isVisible) { effect.style.display ="none" console.log("effects disabled in order conserve resources"); isVisible = false; } else if(isElementInViewport(home) && !isVisible){ effect.style.display ="block"; isVisible = true; } }; |
这很好用,但是页面中的其他元素仍在占用大量资源。
在网站上活动了一段时间后,如果没有查看/禁用效果,是否有人对如何禁用效果有任何建议?
这就是您在
尝试使用
1 2 3 4 5 6 | function animate() { now = Date.now() - start; update(); render(); setTimeout(() => requestAnimationFrame(animate), 500); } |
如果这会使情况变得更好,那么这就是您的问题,应该考虑以较低的延迟永久保留该
首先,打开任务管理器以查看CPU。关闭其他需要大量资源的应用程序以查看清晰的图片;您的CPU使用率应与打开页面之前保持一致。
现在打开它。
Boom !,最高上升到50%。 (我的实际上跳到了95%)
页面顶部有一个大的红色动画区域。它占据了整个屏幕。现在,右键单击它周围的某个位置,然后从菜单中选择"检查元素"。您现在将看到源,它称为" home-section ",它是
因此,删除元素。
Aaand,CPU再次呼吸!
那是您的罪魁祸首。您可以继续对其进行测试,以查看它是否仅一部分负责全部工作,我只是在此处说明概念。通常,进行一些清除会很清楚地表明问题出在哪里。基本上,您的问题出在头部的某个地方,我的nr1怀疑是鼠标随处可见的多边形过渡效果。
无论如何,祝您检查愉快!