10

ASP.NET MVC3 でエンタープライズ アプリケーションの開発に取り組んでいます。もちろん、さまざまなマスター レイアウトと複数のビューがあります。

私の懸念

  • マスター レイアウトにすべての js/css ファイルを含めると、ページのパフォーマンスに影響する可能性があります
  • ビューにファイルを含める (必要な場合) と、重複した参照が作成されます (キックオフ jquery/その他のライブラリ)
  • 参照が多いほど、クライアントとサーバー間のやり取りのリクエストが多くなり、出力ページのパフォーマンスに影響します。

私の考え

  1. 必要なリソースのカスタム リストを作成し、ViewBag に保存します。マスター レイアウトがこのオブジェクトを参照して、js/css ファイルを含めるようにします。
  2. または、いくつかのキー (レンダリングされるページを識別するための一意の値) を持つアクションを参照するリンクを追加し、必要なすべてのリソースを単一の応答として動的に出力を生成します。そして、後続のリクエストの一意のキーを使用して出力 (inmem/staticfile) をキャッシュします。カスタム リソース バンドルの一種。

あなたのアイデアを共有してください、どんな考えや提案も大歓迎です!

編集:2012年9月17日

以下の回答では、Web アプリケーション開発の世界における最適化手法について詳しく説明しています。これらの回答に感謝しています。

レンダリングされるページに必要な動的リソース コレクションの作成に焦点を当てて、アーキテクチャの観点から説明したいと思います。

たとえば、特定のビューでは、jquery-ui-1.8.11.min.js を必要とする jQuery UI を使用したいと考えています。特定のビューでは、MicrosoftMvcAjax.js と jquery.unobtrusive-ajax を必要とする MVC3 ajax を使用したいと考えています。 min.js

マスター レイアウトに永続的な参照を含めたくありません。これにより、これらの js がすべてのビューに読み込まれます。むしろ、実行時にjsファイルを動的に含めたいと思います。

これにより明確さが増したことを願っています!

助けてくれてありがとう - Vinod

4

1 に答える 1

9

最初にダウンロード サイズを小さくすることを検討する必要があります。

  • すべての js と css をできるだけ少ないファイルに入れます。これは、クライアントが一度に開くことができるHTTP チャネルは 2 つだけであるためです(ほとんどのブラウザは現在、より多くの情報をサポートしています。情報はこちら)。これ以降のすべてのファイル ダウンロードは、前のファイルのダウンロードが完了するまでキューに入れられます。
  • js と css を縮小します

これを適切なサイズに落としたら、上記について考えることができます。最小限のコンテンツを事前にダウンロードする必要があるため、 master . これにより、クライアントがキャッシュできるため、パフォーマンスが向上します。キャッシュは良いことです。これにより、クライアントがサイトのページにアクセスするたびに js と css を要求する必要がなくなります。

HTTP 有効期限ヘッダーの適用についても検討する必要があるかもしれません。

Yahoo は、これらの多くのアイデアについて優れたサイトを作成しています: http://developer.yahoo.com/performance/rules.html

また、js をビューバッグに入れないでください。これは不要なオーバーヘッドであり、サーバーに負荷がかかります。ページに参​​照を追加するだけです。

MVC4 がバンドルをサポートするようになりました

于 2012-08-28T08:35:32.643 に答える