[英]Removing an element JS vs CSS for Page speed
如果您从使用javascript(而不是CSS)显示的内容中删除元素,则页面速度是否有任何差异?
例如,如果我在侧边栏中有很多内容,但是想要在较小的屏幕上删除它,则可以这样做:
@media screen and (max-width: 1025px) {
.sidebar {
display: none;
}
}
我不习惯使用js,但是我发现如何用jquery做同样的事情:
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
if(width < 1025) {
$(".sidebar").remove();
}
两者在速度方面有什么不同吗?
CSS总是会胜过JS,但是您可以在JS中做很多事情,而CSS中却做不到。
请注意,您的JS示例仅工作一次(除非您添加onresize侦听器),而CSS示例将始终响应更改。
接下来,您的JS示例将元素从DOM中删除,而CSS仅通过将display属性设置为none来隐藏该元素(但该元素仍然存在于DOM中,并且可以与JS示例不同地进行还原)。
相等的JS代码为:
$(window).on('resize', handleWidth);
function handleWidth(){
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
if(width < 1025)
$(".sidebar").hide(); // document.getElementById('sidebar').style.display = 'none';
else
$(".sidebar").show(); // document.getElementById('sidebar').style.display = 'block';
};
CSS是最好的。 所有内容将以任何一种方式加载。 然后您就有了JS发生了!
在您提供的代码中,css隐藏了元素,并且删除了jquery。
在香草JS中,要隐藏元素,您可以执行以下操作: document.getElementById("El").style.display = none
那和css之间的差异是如此之小,以至于永远不会改变速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.