jQuery やMooToolsなどのフレームワークに依存するのが良い考えなのか、それとも単純な JavaScript を使用するべきなのか疑問に思っています。
車輪の再発明を回避する以外に、何か特別な付加価値はありますか?
フレームワークは一般に公開されているため、フレームワークに (もちろん、意図せずに :)) 出現する可能性のあるセキュリティ ホールが悪用される可能性はありますか?
フレームワークなどを選択する際に考慮すべきその他のポイントはありますか?
jQuery やMooToolsなどのフレームワークに依存するのが良い考えなのか、それとも単純な JavaScript を使用するべきなのか疑問に思っています。
車輪の再発明を回避する以外に、何か特別な付加価値はありますか?
フレームワークは一般に公開されているため、フレームワークに (もちろん、意図せずに :)) 出現する可能性のあるセキュリティ ホールが悪用される可能性はありますか?
フレームワークなどを選択する際に考慮すべきその他のポイントはありますか?
フレームワークは、通常は何時間もかかるクロスブラウザーのバグを解決するため、エッジケースのブラウザーのバグを心配する代わりに、機能に集中できます。バグを解決するために 4 ~ 5 時間を無駄にする代わりに、その時間を家族と過ごすことができます。
jQuery などのフレームワークには、アニメーション、セレクター、html 操作などの要素がかなりロードされているため、通常、何らかの機能が既にライブラリに組み込まれているため、時間を節約できます。API を使用すると、複雑なことを実際に簡単に実行できます。
インタープリターとブラウザーはますます高速になっているため、ライブラリ全体をロードすることは特に大きな問題ではないと思います。さらに、Google などのおかげで、非常に高速な cdn を取得でき、最近では多くのサイトがまったく同じ URI を使用してスクリプトを取得しています。つまり、スクリプトがキャッシュされて別のサイトで再利用される割合が高くなります。
すべての Web 開発者が独自のライブラリを持つ代わりに、何千人もの人々が一握りのライブラリを改善することに集中する方がはるかに効率的であり、クロスブラウザーのバグが文書化されて修正されます。
競争は良いことです。slickspeed テストの結果、Sizzle などのより高速なセレクター エンジンが得られました。開発者が些細な DOM バグを心配する必要がないということは、より複雑なライブラリが毎日作成されることを意味し、初心者レベルの開発者が非常に強力なプラグインにアクセスできることを意味します。
セキュリティに関しては、たとえば jQuery は、ブラウザが JSON をネイティブに解析できるかどうかを検出し、そうであればそれに依存します。通常、最新のブラウザーにはこれがあり、...よりもはるかに安全ですeval
。そのため、jQuery はより安全で安全な方法を最初に使用するよう努めています。JSON.parse メソッドが利用できない場合にのみ、eval を使用します。
ただし、jQuery で覚えておくべき重要なことは、まだ Javascript でコーディングしていることを覚えておくことです。通常、人々は砂糖でコーティングされた方法にとらわれすぎて、すべてを.$
this.href
$(this).attr('href')
車輪の再発明を避けることの重要性を軽視しないでください。新しいプログラムを書きたいと思うたびに、新しいコンピュータを発明する必要はありません。
しかし、それとは別に、JavaScript ライブラリはより優れたクロスブラウザー サポートを提供します。QuirksModeを簡単に見てみるとわかるように、これは非常に役立ちます。
JavaScript フレームワークは、多くのことをより簡単にします。jQuery のドキュメントを参照すると、多くの凝った処理を簡単に実行できることがわかります。
JavaScript フレームワークは多くの人によって拡張されてきたので、自分で作成しなくても使用できる高品質の jQueryプラグイン(たとえば、私が最もよく知っているフレームワークです) が多数あります。
JavaScript フレームワークは、プレーンな JavaScript でできる以上の機能を公開しないため、セキュリティ ホールを導入する可能性は低いです。
JavaScript を何に使用しているかによって異なります。パネルの表示と非表示、アニメーション化、複数の要素へのイベントの関連付け、Ajax の実行などを可能にしたい場合は、クロスブラウザーの問題を考慮する必要があります。
jQuery を使用すると、クロスブラウザーの問題について考える必要がなくなり、上記のような非常に優れた機能やモーダル ダイアログなどを利用できます。
したがって、JavaScript に何を求めるかによって異なります。
私は MooTools を使ったことがないのでコメントできませんが、jQuery は多くのことを簡単にします。
他にもたくさんありますが、一般的に開発を簡素化/加速します。注意すべきことの 1 つは、単一の関数 (DOM を 40 回以上反復するループ) で大量のセレクターを使用している場合は、通常の JavaScript を使用する方がはるかに効率的です。
したがって、私のアドバイスは、フレームワークを使用してフロント エンドをコーディングし、パフォーマンスの低い部分を標準の JavaScript でサブして最適化することです。
また、jQuery や MooTools はサーバー側ではなくクライアント側のフレームワークであるため、どのようにセキュリティ上の脅威になるかわかりません。クライアント側の検証に加えて、サーバー側で常に入力を検証し、サーバー側で構築された SQL クエリを適切にパラメーター化することを忘れないでください。
フレームワークは JavaScript 用のクロスブラウザー API を提供するため、ほとんどの場合、多少の速度低下はありますが非常に便利です。しかし、JS エンジンはほぼすべての更新で高速になるため、実際には問題にはなりません。フレームワークには非常に多くのプラグインもあり、API だけでなく新しいクロスブラウザー機能も提供します。しかし、それはあなたが何をしたいかによります。
私は、「オープンソースはセキュリティ問題に対して非常に脆弱である」という主張をあまり重視していません。多くの善良な人がコードを読んで、そのような問題を発見することにはメリットがあると思います。これが問題になる場合は、Linux、Apache、MySql、およびほとんどの Java ライブラリを破棄する必要があります。
フレームワークは一般的に非常に多くの労力を節約します。私はフレームワークを正確に発明前の車輪と見なしています。他の値は必要ありません。