我正在爲外國網站開發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