asp.net
  • httphandler
  • 2012-01-11 12 views 1 likes 
    1

    は、私はいくつかのASP.NETイメージがHttpHandlerを使用して、データベースから画像をレンダリングするために制御設定することができました。ASP.NETのHttpHandlerとヒットの頻度

    // Notice the ImageHandler.ashx 
    <asp:Image ID="imgSrvcGrp" runat="server" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ServiceGroupID", "~/ImageHandler.ashx?id={0}") %>' /> 
    

    これはうまく動作し、セットアップが驚くほど簡単でした。私の質問に続きます...

    私はそれが期待していないときに特定の時間にHttpHandler(ImageHandler.ashx)がヒットすることに気付きました。例えば、私はHttpHandlerを消費するイメージタグとハンドラ自体に別のブレークポイントを含むページのPage_Loadイベントにブレークポイントを持っている、と私はポストバック(つまりがないにもかかわらずことが判明 - Page_Loadブレークポイントがありますヒットしない)、ハンドラがヒットすることがあります(ハンドラ内のブレークポイントがヒットします)。

    奇妙なことに、これはページ上のjQueryダイアログを閉じると発生します。ページ上にjQueryのダイアログポップアップがあり、jQueryポップアップを閉じると(Xをクリックすると)、イメージハンドラが消費するページのすべてのイメージにヒットしますが、ポストバックは発生しません。

    私は私のWebページがTelerikのRadTabStripを使用しているされて追加して考えることができる唯一の他の詳細、および何らかの形でこの問題に影響を持っている可能性があります。私は、私の説明がかなり長い間巻き込まれていたので、私の質問でより簡潔になることを理解しています。ポストバックが発生していないのに私のイメージハンドラが頻繁にヒットするのはなぜですか?ページのリソースをロードし、フォームを掲示するため

    +0

    ポストバックだけでなく、これが_every_ page loadでヒットすると思います。 – Oded

    +0

    すべてのページの読み込みでヒットしますが、ポストバックがない場合でもハンドラがあります。しかし、以下の答えは私のためにいくつかのことを明確にしました。 – Jagd

    答えて

    1

    は異なるアクションです。

    は、ポストバックとをPage_Loadハンドラとその他もろもろとASP.NETの観点からそれを考えてはいけません。ブラウザの実際のHTMLの観点から考えてみましょう。 「ポストバック」は、ページに投稿されるフォーム以外のものではありません。フォーム投稿をトリガするために何もしていない場合、ページは返信されません。

    ただし、で、他のリソースを要求するとサーバーに当たっています。 CSSファイル、JavaScriptファイル、画像などがあります。ページ内のHTML内で参照されるリソース。したがって、ページがロードされると、一度サーバーにヒットするだけではありません。 HTMLドキュメントを取得するためにサーバーにヒットします(これはページのPage_Loadがトリガーされる場所です)、HTMLをレンダリングしながら、HTMLドキュメントで参照されるすべてのリソースに対して何度もサーバーにヒットします。

    ページが動的なスタイルの調整と/示すリソースを隠している場合、それはそれらのリソースにそれがそれらを示したびに再ロードする必要はありません。しかし、ページがロードされたコンテンツを再レンダリングしなければならない(そして、そのコンテンツがブラウザにキャッシュされていない)何かをしている場合、それはサーバーにヒットします。これは、ASHXハンドラがヒットする原因になります。

    いくつかのデバッグツールを使用してページをロードすることをお勧めします(FirefoxのFireBugは私の個人的な選択です)。FireBugの「ネット」タブおそらく他のツールに似ています)。これは、何が要求されているのか、おそらくそれを要求しているのかを正確に判断するのに役立ちます。たとえば、そのRadTabStripが何らかの理由でページからimg要素を削除して再追加した場合、そのたびにサーバーからイメージが要求されます。

    +0

    ありがとう、David。私はそれについてさらに研究を行い、何がページ上の画像を更新する原因になっているのか判断できないかどうかを確認します。私は、この問題に関していくつかのコメントや質問を追加したい場合に備えて、質問を開いたままにしておきます。再度、感謝します! – Jagd

    関連する問題