2012-03-21 24 views
0

私はasp.netのWebサイトを持って、そこにはsearchResult.aspx、それはMS SQLサーバーデータベースからデータを取得するSQLスクリプトを実行し、HTML形式、データを置くWebサイトIIS7.5サーバーに展開されています。私は静的と動的の両方の圧縮を実装しています。つまり、js、css、aspxのすべてのページがブラウザにレンダリングされる前に圧縮されています。検索aspxページが遅く返す

残念ながら、searchResult.aspxは非常に遅く、伝記のような大きな単語を検索すると、平均して10秒以上かかります。私はそれをトレースするためにfirebug Netを使用しました。ブロッキング、DNSルックアップ、接続と送信はすべて10msを超えませんが、Waitingは10秒以上かかっています。だから私は、以下のような関数をPage_Load(オブジェクト送信者、EventArgsの電子)ともHTMLのbody要素の初めと終わり、の最初と最後にいくつかのコードを追加しました:

protected Stopwatch stopwatch = new Stopwatch(); 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     stopwatch.Start(); 
     .... 
     stopwatch.Stop(); 
     timeForSearch = stopwatch.Elapsed.Milliseconds; 
    } 


    <body> 
     <% 
     stopwatch.Reset(); 
     stopwatch.Start(); 
     %> 
     .... 


     <%stopwatch.Stop();%> 
<%=timeForSearch%>+<%=stopwatch.Elapsed.Milliseconds%>=<%=stopwatch.Elapsed.Milliseconds + timeForSearch%> 

、[OK]を通常timeForSearchおよび充填するための時間aspxページは完全に1秒ですが、なぜページが読み込まれるのに10秒以上かかっても、何か助けになるでしょう。


返信ありがとうございます。aspxページは、8.2KBにgzipされています。大きなファイルではありません

+0

ページの重量とは何ですか?私は "大きな言葉"であなたは多くの結果を返す言葉を意味します。これは、ネットワークの移動時間やブラウザのレンダリング時間、またはその両方を意味する可能性があります。 – JNappi

+0

こんにちはJNappi、返信いただきありがとうございます、aspxページは、8.2KBにgzipされています。ない大きなファイル – danmiao

答えて

0

私は多分、私はそれを固定思っ検索ページは3〜5秒以内にロードすることができ、私はIISログを無効にし、そして、多くのことを改善するようです。しかし、私はまだIISログを無効にすることが良い選択だと考えています。

0

@PageディレクティブのTraceプロパティをtrueに設定してください。

<%@ Page ... Trace="true" %> 

「トレース情報」セクションでは、実行に時間がかかり、おそらくデバッグに役立つページライフサイクルイベントを特定します。

マスターページを使用していますか?あなたのページにユーザーコントロールがありますか?ユーザーコントロールイベントは、親イベントの後に発生します。つまり、UserControl.InitはPage.Initの後(ただしPage.Loadの前)に発生し、UserControl.LoadはPage.Loadの後に発生します。

もしそうなら、それらのコントロールでPage_Loadを調べることができます。

+0

ありがとうrperson、私はあなたが言ったことをやったとページのライフサイクルに関する詳細情報を得ました、「ロード開始」、しかし、10ミリ秒のように、小さなビット時間がかかりますが、「エンドロードは」10秒以上かかりますあなたは私が "ストップウォッチ"を負荷をチェックするために置いていることを知っています、それはわずか1秒かかると言います、私は非常に混乱していました。 – danmiao

+0

マスターページを使用していますか?あなたのページにユーザーコントロールがありますか?ユーザーコントロールイベントは、親イベントの後に発生します。すなわち、UserControl.InitはPage.Init(しかしPage.Load前)後に発生し、そしてUserControl.LoadはPage.Load後に発生します。 もしそうなら、あなたはこれらのコントロールでのPage_Loadを調査することをお勧めします。 SQL検索はデシベルとディスプレイからデータを取得して – outlookrperson

+0

rpersonこんにちは、私はマスターページを使用していない、とどちらもユーザーコントロール、それだけで通常のaspxページです。 – danmiao