ASP.Net Web サイトまたはアプリケーションの高速化
-
08-06-2019 - |
質問
Ajax.Net 対応の ASP.Net 2.0 Web サイトを持っています。データベースのスキーマと同様に、サイトとデータベースの両方のホスティングは私の制御の範囲外です。ハードウェアでのテストでは、サイトのパフォーマンスは良好ですが、クライアントのハードウェアでは、ページのリロードまたは変更時に顕著な遅延が発生します。
私がやりたいのは、アプリケーションを配信する際に、できる限りコンパクトかつ迅速にアプリケーションを作成することです。1 つのアイデアは、サイトのすべての静的リソースに有効期限を設定して、ページの読み込み時にリコールされないようにすることです。リソースとは、画像、リンクされたスタイル シート、JavaScript ソース ファイルを意味します。これを行う簡単な方法はありますか?
.Net Web サイトを最適化する他にどのような方法がありますか?
アップデート:サイト上で YSlow を実行しましたが、最も大きな影響を受けているのは、ロードされている JavaScript とスタイル シートの数 (23 個の JS ファイルと 5 個のスタイル シート) です。1 つ (メイン スタイル シート) を除くすべてが Ajax.net と Asp によって挿入されています。なぜそんなにたくさんあるのでしょうか?
解決
- .net 3.5 SP1 でのスクリプト結合
- 高速な Web サイトのベスト プラクティス
- HTTP圧縮(gzip)
- JS / CSS を圧縮します (http 圧縮、JavaScript の縮小とは異なります)
私の最善のアドバイスは、 YUIコンテンツ. 。彼らは次のようなことについて話している素晴らしい記事をいくつか持っています CSSスプライト そしていくつか持っています リクエストの数を減らすのに役立つ優れた JavaScript ライブラリ ブラウザが作っています。
他のヒント
Firefox を使用して Web サイトをテストしている場合は、Yahoo! の気の利いた Firefox 拡張機能を試してみるとよいでしょう。呼ばれた Y遅い.
Web ページを分析し、パフォーマンスの高い Web サイトのベスト プラクティスごとに A ~ F のグレード (A が最高、F が最低) を提供します。これは、高速化を実現するために最適化できる Web サイトの要素を追跡するのに役立ちます。
ビューステートをデフォルトでオフにすると、最も単純なページでも昼と夜で違いが生じます。
私は、 ブログ投稿 ASP.NET ページのパフォーマンスの向上については、数か月前に取り上げました。素早く簡単な方法をいくつか紹介します -
- ビューステートをオフにする
- イベント検証をオフにする
- HTTP gzip/deflate 圧縮を実装して、応答サイズ (サーバーがクライアントに送り返さなければならないバイト数) を削減します。
- リクエストごとにデータベース呼び出しを最適化/最小限に抑えるようにしてください。
何を最適化するかについて賢明な決定を下せるようにするには、運用環境で実行中にアプリから実際の PerfMon データ/テレメトリを取得できる必要があると思います。
捨てのヒントとして、アプリが リリース ビルドして debug="false" を設定します。編集web.config の ' セクション。
あなたは問題がダウンロード サイズにあると仮定することから始めているようですが、必ずしもそうではない可能性があります。ASP.NET サイトで実験を行って、コード内に過度の遅延を引き起こしている領域があるかどうかを判断する必要があります。ダウンロード サイズが問題ではないことが判明した場合は、結果をキャッシュする方法を見つけるか (ASP.NET の機能である出力キャッシュを調べてください)、コードを最適化する必要があります。
いずれにしても、パフォーマンスの問題を検討するときの最初のステップは次のとおりです。 いつも まず前提を検証してから、行動方針を決定します。
キャッシュ戦略を検討し始めることもできます。CSS (圧縮されたファイルであっても) や画像 (最適化されたファイルであっても) などの静的ファイルは、一定期間ブラウザで 1 回ダウンロードするだけで済みます。
AJAX のスクリプトの結合についてはすでに述べましたが、何を結合するかを理解するために MS が codeplex でリリースした ScriptReferenceProfiler への参照に気づきませんでした。マイク・オーモンド これに関しては良い出発点があります.
データベースに対して大量の INSERT を実行している場合のもう 1 つのヒントは、サーバーのディスク キャッシュがオンになっていることを再確認することです。好例として、データ インポーターが実行中に 120 万回の挿入を実行していました。4時間かかりましたが、キャッシュせずに変更されました。装着したままで16分かかりました。
ASP.NET と Ajax (任意の Ajax ライブラリ) を一緒に使用するときの一般的なことは、Page_Load と Page_Init (およびそれらの対応するメソッド) をエレファント化しないようにすることです。これらはすべての Ajax リクエストで実行されるためです。
そう言われたら、私は真剣に ASP.NET AJAX を捨てて使用するでしょう。 何でも それ以外...
Anthem.NET、AjaxPRO.NET、jQuery、または ASP.NET AJAX 以外のもの...
もちろん使います ラー・アヤックス それは私のプロジェクトなので、私自身。しかし、またしても偏見を持ってしまいます…。
クライアントがサポートしているかどうかに基づいて、圧縮をオンにすることができます。この記事を参照してください。 リンクテキスト
静的リソースは、変更されない限り再送信しないでください。IIS は、キャッシュされたバージョンを使用するようにブラウザーに指示する応答コードを送信します。
また、ASP.NET 出力キャッシュを確認することもできます。これは、ページのさまざまな部分にかなり細かく適用できます。
http://msdn.microsoft.com/en-us/library/xsbfdd8c(VS.71).aspx