我正在为外国网站开发Firefox WebExtension。它有很多我想删除的脚本和广告。我的扩展名中有两个文件,一个是CSS和一个JS文件。在CSS文件,我隐藏这些元素:
/* Hide some parts before removing them */
aside,
#site-footer,
.ads,
iframe,
script {
display: none
}
而在JS文件我用jQuery删除:
// List of selectors to remove
var removeList = [
'aside',
'#site-footer',
'.ads',
'iframe',
'script'
];
// Remove them
$(removeList.join(",")).remove();
我意识到,使用CSS隐藏元素比jQuery.remove快得多()函数。我的问题是,我真的需要在用CSS隐藏后去除这些元素吗?当我从DOM中删除它们时,可以有任何性能吗?我的意思是,例如,在display:none
之后iframe仍然使用CPU吗?如果是的话,我应该继续使用JS代码。否则,哪些潜在收益可以提供额外的删除?
什么jQuery不会是可测量比本地DOM方法慢 - 因为你使用Firefox,你可以使用下面的代码删除jQuery的要求,至少你的代码的删除部分:'document.querySelectorAll(removeList.join( “”))。的forEach(E => e.remove())' –
答案是 “其取决于” – epascarello