ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript モジュールのロード技術に関するいくつかの考え_JavaScript スキル
少し前に、あるネチズンがフロントエンドでの requireJs と seajs の使用について私に尋ねました。私は彼に、以前に自社で作成した JavaScript ライブラリや JavaScript フレームワークを持っているかどうか尋ねました。彼の答えは何もなく、ただ聞いただけでした。 requirejsやseajsなどは新しいもの、新しい技術でとても価値があるので使っていきたいです。
このネットユーザーの質問をきっかけに、私は JavaScript モジュール読み込み技術について考えました。実際、この記事を書いた理由の 1 つは、私が使いたかったからです。 requirejs または、seajs のようなテクノロジーを使用して、JavaScript ライブラリを作成するための基本モデルを再設計します。このテクノロジーについて詳しく学んだとき、一般的なコードとビジネス コードを分離する問題を解決するためにモジュール読み込みシステムを使用するのは間違っていることがわかりました。 JavaScript ライブラリでは、モジュール読み込みシステムの範囲は、JavaScript ライブラリの開発方法を支援することではなく、異なる JavaScript ライブラリ間の依存関係の問題を解決することです。
では、JavaScript モジュール読み込みシステムとは何でしょうか?
モジュール システムは、主に、異なる JavaScript ライブラリでの操作オブジェクトの名前の競合の問題と、異なる JavaScript ライブラリ間の依存関係の問題を解決するように設計されています。モジュール ローディング システムは、大規模な Web フロントエンド アプリケーションや巨大なアプリケーションを対象としています。 Web フロントエンド アプリケーション。
一般に、巨大な Web フロントエンド アプリケーション ページでは、ページの機能が非常に豊富で、ビジネスが非常に複雑になります。さらに、時間の経過とともにページの機能が変更されることが多いため、フロントエンド開発者は、新しい機能に対しては、新しい機能を開発する必要があることが多いですが、実際のビジネスでは、さまざまな機能モジュールの機能が相互に浸透し、依存し合い、複雑な関係を持っている場合があります。フロントエンド ライブラリの管理と制御が難しくなる場合は、モジュール ロード システムが役に立ちます。
ほとんどのプログラマーにとって、このような大規模な Web フロントエンド アプリケーションを独立して行う機会はそれほど多くありませんが、エンタープライズ レベルの Web など、中小規模の Web フロントエンド アプリケーションを開発する機会は数多くあります。使用される JavaScript ライブラリの種類が非常に少なく、各ライブラリの依存関係を制御することが容易です。多くの中小規模のインターネット企業の Web ページでも、おそらく導入する必要がありません。エンタープライズレベルの Web アプリケーションのフロントエンドと同様に優れており、複雑なので、モジュールまたは JavaScript ライブラリ間の関係を管理するのが簡単です。実際、上記のような中小規模のアプリケーションはすべて、特定のシナリオを対象としているため、このような Web フロントエンド プロジェクトに直面して、最終的には独自の JavaScript ライブラリを作成できるのではないかと個人的に感じています。このライブラリの特性は、jQuery の特性と似ている必要があります。ライブラリの種類は、メイン ライブラリといくつかのプラグイン ライブラリであり、再利用可能であり、移行可能である必要があります。プラグイン ライブラリの目的はビジネス コードに関連することが多いですが、メイン ライブラリとプラグイン ライブラリのスコープの問題を区別するために、ライブラリに名前空間関数を追加しました。
Javascript モジュール読み込みテクノロジと Hadoop テクノロジにはいくつかの類似点があります。つまり、どちらも非常に大規模なシステム向けのテクノロジであり、特定の条件下でのみその役割を果たすことができるため、これらのテクノロジは大規模なインターネット企業から立ち上げられています。システムがまだ初期段階にある場合、企業は問題を解決する必要があるため、実際の問題を解決するための最も簡単で効果的な方法を見つける必要があります。このシステムが将来的にますます大規模になると思われる場合は、将来的にこれらのテクノロジを使用するためのインターフェイスを保持しておく必要があります。早期に使用すると、システムの規模が拡大したときにリファクタリングのコストが発生する可能性が高くなります。コードは高くなります。
モジュール ローディング システムの場合、大規模な Web フロントエンド アプリケーション モジュール間の分離問題を解決するのが最も適切なシナリオです。新しい JavaScript ファイルを作成してすぐにモジュール ローディング テクノロジを使用する場合、これは問題ではありません。ちょっとしたテクノロジーの誤用です。特定のテクノロジーを使用する前に、それがどのように使用されるかだけでなく、それを使用する価値があるかどうかも考慮する必要があります。
最後に言いたいのは、中小規模の Web フロントエンド アプリケーションは実稼働環境にデプロイされるべきであるということです。JavaScript はそれほど複雑ではないため、すべての外部 JavaScript ファイルを JavaScript にパッケージ化するのが最善です。この利点は、http リクエストの数が減ることであり、モジュール読み込みテクノロジを使用すると、ファイルのパッケージ化が面倒になるか、不可能になることさえあります (requirejs や seajs などのモジュールはファイルに基づいており、各モジュールは独立したファイルです)。 )これはhttpを減らすという目的を解決するのと同じです。