1

私はさまざまな OO ベースの言語でデスクトップ ソフトウェアを開発しています。私は最近、Web 開発に触れていません。私はちょうど遊んで、jQuery単純jQuery Mobileな Web アプリケーションを構築し始めました。

私のプロジェクトは通常、ベースとしての HTML ファイルと、メソッド、イベントハンドラーなどを含む *.js ファイルで終わることに気付きました。これはスパゲッティ コードをプログラミングするように感じます。複雑なプロジェクト。(再利用性、パフォーマンス、...)

通常の jQuery-Tutorials は、「すべてのメソッドを単一のスクリプト ファイルにする」アプローチでうまく機能する簡単な例を示しているだけです。また、多くの小さなファイルではなく、1 つのファイルだけをロードする方が高速であるため、大きなファイルだけを提供する方がよいこともどこかで読みました。

より大きなjQueryプロジェクトがどのように構造化されているか、またその理由は何か教えてもらえますか?

4

1 に答える 1

4

あなたの質問をより小さな部分に分割しようとします:

「私のプロジェクトは通常、ベースとしての HTML ファイルと、メソッド、イベントハンドラーなどを含む *.js ファイルで終わることに気付きました。これはスパゲッティ コードをプログラミングするように感じられ、これがどのように機能するのか考えられません。より複雑なプロジェクト。」

オブジェクト指向のバックグラウンドが台無しになったようですね。Javascript は、そのプロトタイプの継承を使用することを強制しません。また、jQuery も同様です。それにもかかわらず、それはそこにあります。Douglas Crockford は、古典的な OO 中心の継承からプロトタイプに相当する継承への移行についての記事を書きました: Javascript におけるプロトタイプの継承

「通常の jQuery チュートリアルは、「すべてのメソッドを 1 つのスクリプト ファイルにまとめる」アプローチでうまく機能する簡単な例を示しているだけです。」

はい、すべてのコードを 1 つのファイルに入れると、小規模な Web サイトまたは Web アプリでは問題なく機能しますが、スケーリングしません。

ただし、これは、すべての C メソッド宣言を 1 つのヘッダーに配置し、すべてのコードを 1 つのソース ファイルに配置することと同じです。私のポイントは、あなたも持っていないということです。

この問題の解決策として、RequireJSのようなスクリプト ローダーを検討することをお勧めします。最悪の場合、スクリプト タグを HTML コードにインラインで配置しても問題はありませんが、これもうまくスケーリングできません。

「また、小さなファイルをたくさん読み込むよりも、1 つのファイルだけを読み込む方が高速であるため、大きなファイルだけを提供する方がよいとどこかで読みました。」

ええと...はい、しかしこれはほとんどの場合無視できます。パフォーマンスの低下が見られたとしても、開発コードを本番環境として扱う必要はありません。YUI Compressorなどの圧縮ツールを使用して、JavaScript を圧縮およびマージします。汚染のない短いロード時間。

最後のアドバイス: jQuery が JavaScript アーキテクチャの問題を解決するのに役立つわけではありません。辞書が文章を構成するのに役立つのと同じです。(つまり、jQuery の例に頼って JavaScript の優れたプラクティスを教えないでください)。

于 2013-02-16T15:08:35.013 に答える