- - PR -
Page_Unloadが2回実行される?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-12 21:43
こんにちは。
VS.NETでデバッグしていて気づいたのですが、 Response.Redirect(url, true)で他のページに遷移させた 場合、Page_Unload()が2回実行されるようです。ちなみに、 Response.Redirect(url, false)ではちゃんと1回だけ 実行されるため、Response.End()を試してみたところ、 こちらでも同様のようです。 MSDNも見てみたのですが、どうもそれっぽい記述が見当たらない のですが、このあたりご存知の方はいらっしゃいますか? まあ、何回呼ばれても影響のないようにすれば問題はないの でしょうけど、なんとなく気持ちが悪いので…。 |
|
投稿日時: 2003-12-13 21:21
正確には分かりませんが、ASP.NETがHTMLを作ってからIISがブラウザに返すわけですが、
このASP.NETがHTMLを生成し返す時にアンロードイベントを発生させているのではないでしょうか? ようするにRedirect時に遷移元のHTMLが返される時に1回目のイベント、次に遷移先のHTMLが返されて2回目のイベントという感じでしょうか。 私も以前WindowsFormのように画面が消える時に一回だけアンロードイベントが呼ばれるもの思い込みはまったことがあります。 何かの技術資料等を見たわけではないので間違っていたら申し訳ありません。 逆に私もこのあたりの詳細を知りたいんですが |
|
投稿日時: 2003-12-14 14:13
GAMMARAYさんこんにちは。
遷移先のPage_Unloadが動くならそれは正常だと思うのですが、 今回試したケースでは遷移元が2回実行されているのですね。 ちなみに私が試したケースがどんな物かと言うと、 A.aspxとB.aspxがあって、AのボタンクリックイベントでBに 遷移しようとしていたのですが、ボタンをクリックした時の イベントを追っていくと、 A側のPage_Load ↓ ボタンクリックイベント ↓ A側のPage_Unload ↓ A側のPage_Unload となっていたんですよ。 これがどうにも解せないというわけで。 最初の投稿にも書きましたが、Response.End()を行った場合でも 発生していますので、遷移先が返ってきてそれのUnloadという わけでもないですし…。 |
1