25

Ajax.Net 対応の ASP.Net 2.0 Web サイトを持っています。サイトとデータベースの両方のホスティングは、データベースのスキーマと同様に、私の手に負えません。私が管理しているハードウェアでのテストでは、サイトのパフォーマンスは良好ですが、クライアントのハードウェアでは、ページのリロードまたは変更時に顕著な遅延が発生します。

私がやりたいことは、アプリケーションを配信するときに、アプリケーションをできるだけコンパクトかつ高速にすることです。1 つのアイデアは、サイトのすべての静的リソースに有効期限を設定して、ページの読み込み時にそれらが呼び出されないようにすることです。リソースとは、画像、リンクされたスタイル シート、および JavaScript ソース ファイルを意味します。これを行う簡単な方法はありますか?

.Net Web サイトを最適化するには、他にどのような方法がありますか?

更新: 私はサイトで YSlow を実行しましたが、最も打撃を受けた領域は、読み込まれる JavaScript とスタイル シートの数 (23 の JS ファイルと 5 つのスタイル シート) です。1 つ (メイン スタイル シート) を除いて、すべて Ajax.net と ASP によって挿入されています。なぜそんなに多いのですか?

4

12 に答える 12

22
  1. .net 3.5 SP1 でのスクリプト結合
  2. 高速な Web サイトのベスト プラクティス
  3. HTTP 圧縮 (gzip)
  4. JS / CSS を圧縮 (http 圧縮とは異なり、javascript を縮小)
    1. ゆいコンプレッサー
    2. .NET YUI コンプレッサー

私の最善のアドバイスは、 YUI contentをチェックすることです。CSS スプライトなどについて説明した優れた記事がいくつかあり、ブラウザが行うリクエストの数を減らすのに役立つ便利な JavaScript ライブラリがいくつかあります。

于 2008-08-14T19:03:58.720 に答える
4

Firefox を使用して Web サイトをテストしている場合は、Yahoo! の気の利いた Firefox 拡張機能を試してみてください。YSlowと呼ばれます。

Web ページを分析し、パフォーマンスの高い Web サイトのベスト プラクティスごとに AF (A が最高、F が最低) の評価を提供します。スピードアップを得るために最適化できるウェブサイトの要素を追跡するのに役立ちます.

アップデート

現在、YSlow拡張機能は、Firefox、Chrome、Opera、Safari などの最新のすべてのブラウザーと互換性があります。詳細については、こちらを参照してください。

于 2008-08-14T19:11:07.507 に答える
3

ビューステートをデフォルトでオフにすると、最も単純なページでも昼と夜の違いになります。

于 2008-08-14T19:06:44.753 に答える
2

数か月前に、ASP.NET ページのパフォーマンスの向上に関するブログ記事を書きました。ここにいくつかの迅速で簡単な方法があります -

  • ビューステートをオフにする
  • イベントの検証をオフにする
  • HTTP gzip/deflate 圧縮を実装して、応答サイズ (サーバーがクライアントに送り返す必要のあるバイト数) を減らします。
  • リクエストごとにデータベース呼び出しを最適化/最小化するようにしてください
于 2008-08-15T02:53:37.370 に答える
1

何を最適化するかについて賢明な決定を下すことができるようにするには、実稼働環境で実行中にアプリから実際の PerfMon データ/テレメトリを取得できる必要があると思います。

使い捨てのヒントとして、アプリがリリースビルドとしてデプロイされていることを確認し、web.config の「コンパイル」セクションでdebug="false" を設定します。

于 2008-08-14T19:10:06.947 に答える
1

あなたの問題はダウンロードサイズであると仮定することから始めているようです - それは必ずしもそうではないかもしれません. ASP.NET サイトでいくつかの実験を行い、コードに過度の遅延を引き起こしている領域があるかどうかを判断する必要があります。ダウンロード サイズが問題ではないことが判明した場合は、結果をキャッシュする方法を見つける (ASP.NET 機能である出力キャッシュを調べる) か、コードを最適化する必要があります。

いずれにせよ、パフォーマンスの問題を調べるときの最初のステップは、常に最初に仮定を検証してから、行動方針を決定することです。

于 2008-08-14T19:28:00.280 に答える
1

キャッシュ戦略を検討し始めることができます。CSS (圧縮されたものも含む) や画像 (最適化されたものも含む) などの静的ファイルは、一定期間、ブラウザーによって 1 回だけダウンロードする必要があります。

AJAX のスクリプト結合については既に言及されていますが、何を結合するかを理解するために MS が codeplex でリリースした ScriptReferenceProfiler への参照に気付きませんでした。Mike Ormondは、これについて良い出発点を持っています。

データベースに対して多数の INSERT を実行している場合のもう 1 つのヒントは、サーバーのディスク キャッシュがオンになっていることを再確認することです。適切な例として、実行中に 120 万回の挿入を行うデータ インポーターがありました。4時間かかり、キャッシュせずに変更しました。装着時間は16分。

于 2008-08-28T11:43:02.253 に答える
1

これらのヒントを試しましたか?

http://weblogs.asp.net/haroonwaheed/archive/2008/06/30/ASP.NET-Performance-Tips.aspx

于 2008-08-14T19:53:55.437 に答える
1

ASP.NET と Ajax (任意の Ajax ライブラリ) を一緒に使用する場合の一般的なことは、Page_Load と Page_Init (およびそれらの対応するメソッド) がすべての Ajax 要求で実行されるため、象化を避けることです。

それが言われたら、ASP.NET AJAXを真剣に捨てて、他のものを使用ます...

Anthem.NET、AjaxPRO.NET、jQuery、または ASP.NET AJAX 以外のもの...

もちろん、それは私のプロジェクトなので、私自身はRa-Ajaxを使用します。でもまた偏見ですよね…

于 2008-11-20T09:06:08.110 に答える
0

また、ページのさまざまな部分にかなり細かく適用できる ASP.NET 出力キャッシュを確認することもできます。

http://msdn.microsoft.com/en-us/library/xsbfdd8c(VS.71).aspx

于 2008-09-17T22:58:58.980 に答える
0

圧縮をサポートしているクライアントに基づいて圧縮をオンにすることができます。この記事を参照してください:リンク テキスト

于 2008-08-14T18:55:21.343 に答える
0

変更されない限り、静的リソースを再送信しないでください。IIS は、ブラウザーにキャッシュされたバージョンを使用するように指示する応答コードを送信します。

于 2008-08-14T18:55:58.050 に答える