私は外国のウェブサイトのためにFirefox WebExtensionを開発しています。それは私が削除したい多くのスクリプトと広告があります。私は拡張子に2つのファイル、CSSとJSファイルを持っています。
/* Hide some parts before removing them */
aside,
#site-footer,
.ads,
iframe,
script {
display: none
}
そして、JSファイルに私はjQueryを使ってそれらを削除します:CSSファイルでは、私はこれらの要素を非表示
// 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