Joelは、サードパーティのライブラリを使用するときは常に注意するように言っていました。私の最初の印象から、jQueryは素晴らしいです。使用する際の注意点は?制限は何ですか?後で使用するにつれて、どのような頭痛が発生しますか?
12 に答える
私はそれを広範囲に使用してきましたが、認めざるを得ませんが、まだ深刻なレンガの壁に遭遇したことはありません! 私は自分で簡単な修正を見つけなければならなかったいくつかのバグに遭遇し、次の jQuery リリースで追加のテストを行って、バグが適切に処理されたことを確認しましたが、それはサードパーティに適用されるものです。 jQueryだけでなくライブラリ。
これは私が言わなければならない素晴らしいライブラリだと思います。サードパーティのライブラリに関するアドバイスにはメリットがありますが、この Web 2.0 の世界では Javascript の使用量が急激に増加し、ブラウザ間の相違点が非常に多く、よく管理されたライブラリを使用しています。すべての作業を自分で行わなければならないというオーバーヘッドを節約できるため、開発を本当にスピードアップできます。
警告を 1 つ出すとしたら、やり過ぎないようにするためだと思います。心配する必要のない大量のロジックを抽象化することで、Javascript の開発が本当に加速されますが、リスクは常に存在します。ブラウザーに何を要求しているのかを正確に理解していないため、非効率的なアプリケーションを作成し始めることになります。したがって、内部で何が起こっているかを確認するために、Firebug などを使用して十分なプロファイリングを行うことをお勧めします。
@mjc
$("a tip")
.you()
.can()
.chain()
.stuff()
.like()
.this();
および/またはjQuery関数を使用する変数を定義します:
var $tip = $("a tip");
$tip.choo();
$tip.choo();
$tip.train();
私がjQueryで遭遇したことの1つは、多くのアイテムをチェーン化することになり、注意しないとすぐに読めなくなる傾向があるということです。
私が考えることができる例は、これがジョン・デイビッド・アンダーソンのブログにあることを示しています。
ロギング関数を作成した人がいるので、whereYou(are).whenYoureCoding()。inThe(middleOf).a(jQuery).trainWreck()を把握できます。
物事をつなぎ合わせる力はわかりますが、スイングの途中でコンソールに物事を記録する必要がある場合は、おそらく行き過ぎだと思います。今から一週間も読めるようになる可能性はほとんどないでしょう。
@BrilliantWater -ほとんどの人は「学習」するために jQuery を使用しません。すべてのメソッドを自分で作成するよりも速くて簡単に使用でき、頭痛の種が少ないためです。そして、「肥大化した」議論全体はまったく意味がありません。jQuery は最小のライブラリの 1 つであり、ブロードバンドを利用する人が増えるにつれて、jQuery はますます問題になりにくくなっています。
さらに、jQuery は GoogleCode によってホストされているため、非常に多くの Web サイトで使用されているため、既にユーザー キャッシュにある可能性があります。
jQueryはすごい!別のライブラリを学ぶ必要があると自分に言い聞かせていますが、実際にはそうではありません。jQuery には必要なものがすべて揃っています。すべてのプロジェクトに適しているわけではないことはわかっていますが、ほとんどのプロジェクトで確実に使用できます!
@ブリリアントウィンター
jQuery はまったく肥大化していません。最小のライブラリの 1 つです。
すべての関数は jQuery オブジェクトの拡張です。つまり、使用しない機能を切り離して、ライブラリのフットプリントをデフォルト サイズ (15kb、縮小および Gzip 圧縮) よりもさらに小さくすることができます。
jQuery (および他のすべてのライブラリ) は、すべての A グレードのブラウザーで同じ API を提供します。この抽象化により、コードがよりクリーンになり、エラーが発生しにくくなります。
最後に、jQuery は主要な「プレイヤー」によって使用されています。Google、Dell、Digg、NBC などの企業がこのライブラリを使用しています。これは大きな承認印であるだけでなく、jQuery の開発者がライブラリを改訂する際に細心の注意を払っており、壊れたりバグが発生したりしないようにすることを保証するものでもあります。
jQuery は優れています。JavaScript でできることは何でもできますが、より速く、少ないコードで実行できます。その唯一の制限は、クライアント側のスクリプト言語としての JavaScript に固有のものです。どのツールもそうですが、使い方を誤る可能性はありますが、スクリプト作成のニーズが非常に基本的なものでない限り、使用しない理由はほとんどありません。
ブログを読んでいて、以下の記事を見つけました。これは jQuery の実際の制限ではありませんが、jQuery を使用する ASP.NET 開発者を使用するときによくある間違いです。
http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/
jQuery の唯一の欠点は、単純すぎて使いやすいことです。あなたはそれを使用し、非常に奇妙で遅滞に近いことをしている初心者の非常に低いバーを取得します. それ以外に、jQuery は美しく、天才と彼の手下であるスマート プログラマーの手下によって巧妙に作成されており、クロス ブラウザーの品質を保証し、開発者の膨大な作業を削減します。間違いはありません。jQuery が気に入らない場合は、少し気分が悪く、おそらく十分な頻度で入浴していないでしょう。
アップデート
これは私の非常に古い答えでした。もちろん、まだIE8の死の土地の要件に住んでいる場合を除いて、ブラウザーはほとんどの部分で同じになるように収束しているため、querySelectorとMDN参照を使用する場合、jQueryは本当に必要なくなりました。jQuery もグローバルに存在します。これは、最新の JavaScript を構築している場合には問題です。jQuery は、モジュラー構文ライブラリを使用しない古い学校のプラグインがいくつかあることを除けば、現時点ではあまり役に立ちません。
JavaScript のモジュール化が jQuery の後の傾向であったため、JavaScript のモジュール化に目を向け始めます。es6/es2015 に注意してください。React/React Native OR Angular 2 をアプリの作成に使用し始めます。これは、ある程度追いついたので同等です。
ごめんなさい、ジョン・レシグ。この時点で、人々は「ジョン誰?」のようになります。彼は私の本ではまだ天才ですが。でも、彼が成功を収めて、さらに良いものを作ってくれることを願っています。
変化の仕方が面白い。
便利な JavaScript を書くときは、jQuery が不可欠であることがわかりました。そうは言っても、私が取り組んでいたあるサイトでは、アニメーションをやりたいと思っていました。私はフラッシュを使用しないことを提案しましたが、jQuery が jQuery で非常にうまくパッケージ化されている比較的「単純な」アニメーションを実行します。フェードやスライドなどを使用しました。結局、ブラウザが処理するには多すぎて (具体的には IE ですが、FF はストレスの兆候を示していました)、ほぼすべてを元に戻す必要がありました。
jQuery は、コードを書いたり、実験したりするのがとても楽しいです。質問に迅速に対応する素晴らしい開発者コミュニティがあります。夢中になりすぎないように注意してください!:)
私は約 6 か月間それを使用してきましたが、私のチームの遅い開発者の何人かがそれを受け入れていないことを除いて (おそらく、より長いチェーンのいくつかの威圧的な外観のため)、単一の問題に遭遇していません.
jQuery が適していない場合は、いつでも別のフレームワークを検討できます。これはmootoolsの例です。
MooTools は、中級から上級の JavaScript 開発者向けに設計されたコンパクトなモジュール式のオブジェクト指向 JavaScript フレームワークです。洗練された、十分に文書化された一貫性のある API を使用して、強力で柔軟なクロスブラウザー コードを作成できます。
私は jQuery の大ファンです (jQuery 用のプラグインとダッシュボード ウィジェットの両方を作成したことからも明らかです)。
注意すべきことの 1 つは、jQuery がサポートするブラウザーです。現在、ドキュメント サイトに問題があるようです。それはもう一つ気をつけなければならないことです... ;-)