2017-01-03 1 views
3

アプリケーションの最適化に関するご質問があります。私は複数のディレクティブを持つアプリケーションを持っているので、私は1分を構築することに決めました。それらのすべてのためのCSSとjsファイル。しかし、同時に、私は別の方法を考えていました。anglejsにテンプレートをプリフェッチすることの利点はありますか?

大きな最小化されたHTMLファイルを1つ作成するとどうなりますか?アンギュラがscriptタグからテンプレートを含むことができます。その場合は

<script type="text/ng-template" id="tempName"> Template content </script>

、何が一つの大きなファイル内のすべてのディレクティブのHTMLを注入する欠点でしょうか?必要なときに、複数の小さなファイルと発射要求よりも優れていますか? 複数のビューを持つ大きなアプリケーションがあればそれほどうまくいかないかもしれませんが、ユーザーはほとんど表示されません。私の考えは、小さなディレクティブのためにこのファイルを構築することです。それは問題を引き起こしませんよね?

あなたはこれについてどう思いますか?

+0

あなたの質問はテンプレートのみに制限されていますか? – bhantol

+0

はい、私が質問したように、私はすでにJSとCSSを最小限に抑え、HTMLの問題を考えていました。ディレクティブ用の小さなテンプレートは私のアプリケーションでは大きな問題であり、すべてのディレクティブが別の小さなリクエストをどのように実行するかを見ると、 。 – deem

+0

行く。既にそれを行うためのツールがあります。 https://www.npmjs.com/package/gulp-angular-templatecacheはtemplate.jsにすべてのテンプレートを吐き出し、あなたのindes.htmlに含めることができます – bhantol

答えて

3

このようなテンプレートをキャッシュするアプローチには賛否両論があります。

長所:

  • テンプレートをフェッチする必要はありません - 、オフライン機能
  • ネットワークが遅く、フェッチこのディレクティブ、ルートとしていくつかの遅れを引き起こすことが起こっている場合に適して解決する必要があります含めますtemplateUrlこのような場合、プリフェッチはフィーリングの滑らかさを改善するのに役立ちます。
  • プリフェッチでは、テンプレートをプレコンパイルして、templateCacheに格納されたまま使用できるようにします。

短所:大規模なアプリケーションで

  • すべてのテンプレートがプリフェッチされている場合、我々は、本質的にはほんの一握りが慣れる可能性がある場合、すべてのテンプレートを保存するために、より多くのメモリを利用しています。
  • プリフェッチされたテンプレートがロード中にフェッチされると、追加の要求が発生します。

プロがあなたのように、いくつかのビルドツールなど を使用したい場合があり、アプリケーションに超えている場合:

2

あなたが含む各ファイルは、ブラウザが前後しなければならない追加のリクエストです。したがって、同じページにそれを含めることができれば、より速く効率的になるはずです。複数で除外する主な理由ファイルは単に組織のためのもので、ページ読み込み時間が0.01ms異なるものです。

gruntのようなものを別々のファイルで使用して、そのファイルを自動的に連結して最適化して最適化することもできます。

+0

真実ですが、可読性と保守性のためにファイルがどれだけ大きくなければならないかについては合理的な制限があります。 1つのファイルにAngularアプリ全体が含まれているプロジェクトで作業したくないです。しかし、あなたのグラン案は良いです。 – isherwood

関連する問題