内部アーキテクチャと概念から分割されている場合、JavaScriptフレームワークは5つのカテゴリに分けることができます。
タイプ1
表示されるのは、名前空間指向のクラスライブラリまたはフレームワークです。たとえば、配列を作成する場合は、new array()を使用して、新しいオブジェクト()でオブジェクトを生成する場合、それは完全にJavaスタイルです。したがって、オブジェクトをルートとして使用し、コードを整理するためにオブジェクト属性またはセカンダリオブジェクト属性を常に追加し、ピラミッドのように積み重ねることができます。 Early YuiやExt。などの代表作品。
タイプ2
登場したのは、有名なプロトタイプ、Mootools、Base2、およびTenなど、工場指向のフレームワークです。基本的に、最も基本的な名前空間を除いて、他のモジュールはクラス工場から派生したクラスオブジェクトです。特にMootools 1.3は、すべてのタイプをタイプタイプにカプセル化します。
タイプ3
JQueryが代表するセレクター指向のフレームワークです。フレームワーク全体またはライブラリボディは、セレクターが通常一度にn要素ノードを選択するため、コレクション操作に便利な特別なクラスアレイオブジェクトです。 jQueryにはいくつかの驚くべきものが含まれています。「新しいフリーインスタンス化」テクノロジー、$(expr)は、明示的に新しいものなしでインスタンスを返すことです。最初にすべてのアクセスルールを設定します:データキャッシングシステム。これにより、ノードのイベントを複製できます。さらに、Iife(すぐにvokedされた関数式)も発見されています。
タイプ4
ローダーで接続されたフレームワークです。それらはすべて複数のJavaScriptファイルを備えており、各JavaScriptファイルは固定ルールで記述されています。それらの中で最も有名なのはAMDです。モジュール性は、JavaScriptが工業化に向かっている兆候です。 「UNIXプログラミングアート」に記載されている多くの「ゴールデンルール」の最初はモジュールであり、「複雑なソフトウェアを必ず書く唯一の方法は、いくつかの単純なモジュールと明確に定義されたインターフェイスを組み合わせることです。この方法では、ほとんどの問題は地域でのみ発生します。企業の多くの内部枠組みは、基本的に、Dojo、Yui、Kissy、Qwrap、Massなどのこのアーキテクチャを採用しています。
タイプ5
これは、明確な階層アーキテクチャを備えたMV*フレームワークです。まず、JavaScript MVC(現在はCanjsと呼ばれています)、Backbonejs、およびSpinejs、そしてノックアウト、Ember、Angular、Avalon、Winjsなどの実際のフロントエンドMVVMフレームワークとさらに沿っています。 MVVMフレームワークでは、元のDOM操作は宣言的な拘束力に置き換えられ、フレームワーク自体によって処理され、ユーザーはビジネスコードに集中する必要があります。
以下は、フレームワークの特性に関する結論です。
基本型の操作が基本です。たとえば、jQueryは、トリム、キャメルケース、それぞれ、マップなどのメソッドを提供し、プロトタイプなどのプロトタイプなどの侵襲的なフレームワークを提供します。
タイプの決定は不可欠であり、一般的な形式はISXXXシリーズです。
セレクター、domready、およびajaxは、最新のフレームワークの標準的な機能です。
DOM操作が最優先事項です。ノード、スタイル操作、および属性操作のトラバーサルもその範囲に属します。細分化するかどうかは、フレームワークのサイズに依存します。
ブロワースニッフは時代遅れであり、特徴検出が適用されています。ただし、機能の検出にはまだ制限があります。ブラウザスニッフィングを使用してバグ、セキュリティポリシー、または特定のブラウザバージョンに修正をレンダリングしている場合、ブラウザスニッフィングが必要です。ただし、モジュールまたはプラグインとして独立して、フレームワークのコアを削除する必要があります。
現在、主流のイベントシステムはイベントのプロキシをサポートしています。
現在、データのキャッシュと処理は、この作業のデータ - *属性を提供するためにブラウザによって提供されていますが、使いやすく、フレームワークのさらなるカプセル化が必要です。
アニメーションエンジン。フレームワークには、script.aculo.usのような一流のアニメーションフレームワークがある場合を除き、バッキングとして、追加するのが最善です。
開発が簡単で拡張可能なプラグイン。
延期などの非同期プロセスを処理するためのソリューションを提供します。
クラスの工場が特別に提供されていなくても、オブジェクトを拡張するためのextendまたはミックスインと呼ばれるメソッドが必要です。 JQueryにはクラスの工場はありませんが、JQuery UIに追加する必要があります。これはその重要性を示しています。
jQueryはnoconflictというメソッドを発表したため、新たなフレームワークがすべてこの方法をスリットで生き残るためにもたらしました。
多くのフレームワークは、Cookie運用に大きな重点を置いています。