5

使用する利点がありますか?querySelector() vs jQueryの$()は、userscriptにありますか?私はスクリプトがユーザスクリプトをサポートするすべての主要なブラウザで動作するようにしたいので、特にブラウザ間の互換性に関心があります。

私はhonestbleeps'優れたRedditの強化スイートが依存関係としてのjQueryを含んでいるが、ほとんどの要素とDOM操作のための他の基本的なJavaScriptメソッドを選択するためのquerySelector()にこだわっ。気づいたので、私はこれについて疑問に思い始めました

jQueryの使用を最小限に抑える理由はありますか?

+2

* Reddit Enhancement Suite *でそのミックスをあまり読んでいないと思います。どんな大きく進化しているプロジェクトでも、(もっと)古いスタイルのコードと、より新しい、より良いプラクティスが混在しています。 (新しい方は必ずしも良いとは限りません)...すべての開発者やチームがすべてのものを一貫させるために、古いコードをリファクタリングする人はほとんどいません。 –

答えて

3

querySelector()またはquerySelectorAll()を使用する唯一の理由は、jQueryを使用していない場合です。 jQueryセレクタは、高度なCSSセレクタよりも強力で、ブラウザ間で一貫して動作する可能性が高くなります。

これは、jQueryを含めて、不必要にスクリプトを複雑にすることができます。ほとんどのブラウザでScript Injectionが必要です。これはサンドボックスを破り、潜在的な競合を引き起こし、サードパーティのサーバーに依存します。
Here is a cross-browser way to include jQuery that minimizes conflicts. And, if the browser supports local jQuery copies, it doesn't require a third-party server to always be up/fast.

スクリプトは簡単で、あなたはquerySelector()を使用し、多くの努力なしでjQueryのを避けることができます。あなたのスクリプトは、99%以上の時間をかけて、すべてのスクリプト対応ブラウザで動作します。

とにかくスクリプトがjQueryを読み込む場合は、最大限の力と一貫性を得るためにjQueryセレクタを使用してください。

最も基本的なDOM操作以外は、jQueryには通常コストがかかります。 Firefox + GreasemonkeyまたはChrome + Tampermonkeyの場合、@require itの場合、jQueryを使用することにはほとんど問題はありません。

+0

さらに、有効なCSSセレクタを提供するたびに、jQueryのデフォルトは 'querySelectorAll()'になります。 – BoltClock

1

querySelectoris not supported in some browser versionsですが、jQueryの$()はです。

+2

'greasemonkey'と' userscripts'の質問には適用されません。スクリプト可能なブラウザのすべての最新版は 'querySelector()'をサポートしています。 (少なくとも標準ベンダの間で) –

関連する問題