ここで奇妙なものを手に入れました。
私は基本的な ASP.NET/C# コード ビハインド アプリに取り組んでおり、概要データがグリッドに一覧表示され、各レコードには "更新" ボタンが付随しています。ボタンをクリックすると window.open() がトリガーされ、グリッドの各行の ID がクエリ文字列に渡されて、新しいウィンドウで編集する関連レコードが取得されます。
レンダリングされた「グリッド」ページの例:
window.open('EditTool.aspx?ID=' + ID, 'new_window', width=550, height=300');
ボタンからページを開くと、レンダリングに 10 秒以上かかる場合があります。新しいタブを開き、URL とクエリ文字列の内容をアドレス バーに貼り付けるだけで、ページがすぐにレンダリングされます。
ページのコンテンツに log4net ステートメントを追加したところ、すべてのコントロールとコード ビハインド C# が数ミリ秒で実行されるように見えます。
調査のために、ポップアップブロッカーを無効にして、IE7(職場標準、うーん)、FF、およびChromeでこれを試しました。
レンダリングを高速化する方法、または何が遅くなっているのかを確認できる他の場所についてのアイデアはありますか?
アップデート:
空(「新しいアイテムを追加」したときに追加されるもの)の ASPX をポップアップとして開くボタンを持つ新しいシェル Web アプリケーションを作成しました。ポップアップはすぐにレンダリングされます。また、空のポップアップを開くように既存のアプリを変更しましたが、同じ遅延が発生します。アプリサーバーは、ページのレンダリングが遅いのではなく、ページの処理を開始する前に何かを処理するのを待っているようです。
ASP.NET には、各レンダリングでページを再コンパイルしないように指示できる設定がありますか?