- - PR -
リンク移動に時間がかかる
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-15 16:38
VB.NET(ASP.NET)でWebアプリを作成しています。
あるページから、異なるページへresponse.redirectで飛ばしているのですが、 その元のページに多くのデータを表示していると、リダイレクトされるのに 非常に時間がかかります。 データを表示していない状態であれば、即リダイレクトされます。 データを多く表示している場合でも、そこからのリダイレクトが素早く行われるようにする方法はありますでしょうか? アドバイスをよろしくお願いします。 | ||||||||
|
投稿日時: 2006-11-15 16:49
[quote]
response.redirectの仕様を理解しているかい? そのページの処理が完了してからリダイレクトされるんだから遅いのは当たり前だろ 代替にserver.transferが使えるかどうかは知らん。調べろ。 そもそも「多くのデータを表示している」状態そのものに問題があるんじゃないか? ごめん。確かにどっとねっとふぁん氏の言う通りだ。 偉そうな口調でウソ書いて申し訳ない。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-11-15 16:51 ] [ メッセージ編集済み 編集者: 未記入 編集日時 2006-11-15 17:14 ] | ||||||||
|
投稿日時: 2006-11-15 17:06
> あるページから、異なるページへresponse.redirectで飛ばしているのですが、
> その元のページに多くのデータを表示していると、リダイレクトされるのに > 非常に時間がかかります。 Response.Redirectをどこに記述していますか? データを表示(や取得)する前にリダイレクトするようなタイミングに変更すれば いいような気がします。 | ||||||||
|
投稿日時: 2006-11-15 17:54
ご返答ありがとうございます。
response.redirect自体はあるボタンを押したときに走るようになっています。 ちなみにそのボタンの動作はresponse.redirectしかありません。 それでもその前にページにデータを表示していたかどうかで速度がだいぶ変わってしまいます。 具体的なコードは例は・・・ Private Sub Page_Load 〜 if ispostback = false then button1.Attributes("onclick")="return confirm('〜へ移動します。よろしいですか?') end if End Sub Private Sub button1_Click 〜 response.redirect("/aiueo.aspx") End Sub こんな感じです。 ちなみにServer.transeferはヘルプに 「Server.Transfer はサーバーで実行されるため、ブラウザにはページ変更のレコードは残りません。したがって、ユーザーがページの再表示を行った場合、予期しない結果になる可能性があります。」 と書いてあるので、使用していません。このことは気にしなくてよくて、Server.Transferなら速度がだいぶ上がるのならば使用も検討してみますが。。。 どうなんでしょうか? | ||||||||
|
投稿日時: 2006-11-15 18:02
うーん、リダイレクトの問題ではないと思うので、Transferを使ったところで
一緒のような気がします。 もしかして、あまりにデータ量が多くて、ユーザがボタンをクリックしてからも 実はデータのダウンロードが続いてる、なんてことはありませんかね。 まぁ、そんな量のデータをダウンロードしているようならユーザインタフェースを 一から見直したほうがいいでしょうけど。 | ||||||||
|
投稿日時: 2006-11-15 18:14
Page_Load で、大きなデータを検索していたりして。。。 #本当に移動しかしないなら、JavaScript で飛ばしちゃってもいいかも。。。 _________________ かるあ のメモ と スニペット | ||||||||
|
投稿日時: 2006-11-15 19:18
実はビューステートが多かったり?
も可能性のひとつかも(。。 | ||||||||
|
投稿日時: 2006-11-15 20:07
ていうかまずこれでしょう。 ビューステートが有効なデータグリッドに大量データ表示してるとかでしょう。 こうなると、ボタン押下のポストバックで大量データが送信されるので、 その処理だけで通信時間と処理時間を食います。 |