- PR -

Page_Unloadが2回実行される?

1
投稿者投稿内容
GShadow
会議室デビュー日: 2003/11/21
投稿数: 2
お住まい・勤務地: 宮城県
投稿日時: 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
投稿数: 5
お住まい・勤務地: 東京都
投稿日時: 2003-12-13 21:21
正確には分かりませんが、ASP.NETがHTMLを作ってからIISがブラウザに返すわけですが、
このASP.NETがHTMLを生成し返す時にアンロードイベントを発生させているのではないでしょうか?
ようするにRedirect時に遷移元のHTMLが返される時に1回目のイベント、次に遷移先のHTMLが返されて2回目のイベントという感じでしょうか。

私も以前WindowsFormのように画面が消える時に一回だけアンロードイベントが呼ばれるもの思い込みはまったことがあります。

何かの技術資料等を見たわけではないので間違っていたら申し訳ありません。
逆に私もこのあたりの詳細を知りたいんですが

GShadow
会議室デビュー日: 2003/11/21
投稿数: 2
お住まい・勤務地: 宮城県
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)