C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: AjaxのendRequestについて


(過去ログ 128 を表示中)

[トピック内 18 記事 (1 - 18 表示)]  << 0 >>

■75832 / inTopicNo.1)  AjaxのendRequestについて
  
□投稿者/ こまっくま (7回)-(2015/05/07(Thu) 19:21:20)

分類:[.NET 全般] 

環境:
asp.net(vb.net)
Framework4
IIS7.5


下記サイトを参考にし時間のかかる非同期処理に対して画面に
メッセージを出すようにしました。
スリープの時間を2分に設定してみたところ1分30秒でendRequesの
処理に行ってしまいます。

この時間を延ばす方法はあるのでしょうか?


参考サイト
http://www.atmarkit.co.jp/fdotnet/ajaxlib/ajaxlib02/ajaxlib02_01.html
引用返信 編集キー/
■75834 / inTopicNo.2)  Re[1]: AjaxのendRequestについて
□投稿者/ こまっくま (8回)-(2015/05/07(Thu) 20:07:32)
2015/05/07(Thu) 20:15:14 編集(投稿者)

 
引用返信 編集キー/
■75835 / inTopicNo.3)  Re[1]: AjaxのendRequestについて
□投稿者/ WebSurfer (565回)-(2015/05/07(Thu) 21:30:51)
No75832 (こまっくま さん) に返信

何をしたいのか、何をしているのかよく分かりません。

特に、

> 画面にメッセージを出すようにしました。
> スリープの時間を2分に設定してみた

というところをどのようにしたのか、具体的に書いてください。できれ
ば回答者の方でコピペすれば問題を再現できる必要最小限(あくまで必
要最小限でお願いします)のコードをアップできませんか?

参考にされているサイトの記事を全部読めばわかるとしても、そういう
ことは期待しないでください。それは回答者や一般閲覧者にとって負担
が大きすぎます。

引用返信 編集キー/
■75856 / inTopicNo.4)  Re[2]: AjaxのendRequestについて
□投稿者/ こまっくま (9回)-(2015/05/11(Mon) 18:34:11)
コードは以下の様になります。
スリープの時間を2分に設定したのは処理に2分以上かかるためです。

1分30秒でadd_endRequestに入ってきてしまいます。
どのようにすれば1分30分以上でも正常な動作をするのでしょうか?

-------------------------------------------------
画面(.aspx)
-------------------------------------------------
<script type="text/javascript">
function pageLoad() {

// PageRequestManagerクラスをインスタンス化
var mng = Sys.WebForms.PageRequestManager.getInstance();

// initializeRequestイベント・ハンドラを定義
mng.add_initializeRequest(

// 非同期ポストバックの開始前に、
// イベント発生元の要素(ID値)を表示
function(sender, args) {
$get('lblStatus').innerHTML = args.get_postBackElement().id
+ 'から非同期ポストバックが実行されました。';
}
);

// 非同期ポストバックの完了後にメッセージをクリア
mng.add_endRequest(
function(sender, args) {
$get('lblStatus').innerHTML = '';
}
);
}
</script>

-------------------------------------------------
コード(.vb)
-------------------------------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
System.Threading.Thread.Sleep(120000) ' 時間稼ぎのためのダミーコード2分に設定
lblSync.Text = DateTime.Now.ToLongTimeString()
lblAsync.Text = DateTime.Now.ToLongTimeString()
End Sub
引用返信 編集キー/
■75857 / inTopicNo.5)  Re[3]: AjaxのendRequestについて
□投稿者/ WebSurfer (568回)-(2015/05/11(Mon) 21:41:48)
No75856 (こまっくま さん) に返信

全く見当違いのことを質問されているように思えますが。

> System.Threading.Thread.Sleep(120000) ' 時間稼ぎのためのダミーコード2分に設定

「時間稼ぎ」とはどういうことでしょう。何故ここで時間を稼ぐ必要があるのですか?
その必要はないですよね。

Sleep(120000) は、実際に時間のかかる処理をそこで行うのに、試験的に仮に使ってい
るだけではないのですか?

つまり、その行で時間のかかる処理を実行したら、処理中にメッセージが表示され、処
理が終わって応答が帰ってきたらメッセージが消去されるることを確認したくて、試験
的に Sleep(120000) を使っているのですよね?

実際に時間のかかる処理をそこで行ったらどうなりますか? 早く処置が終わればそれ
に越したことはないわけで、必ず 2 分「時間を稼ぐ必要」はないはずですよね。

逆に 2 分以上かかれば、応答はその後で帰ってきて、メッセージは応答が帰ってきてか
ら消去されないとダメですよね。

Sleep(120000) としたのに、何故 2 分でなくて、1 分 30 秒で応答か帰ってくるかは
全く別の問題です。それが今回の疑問であれば、質問の仕方を変えて、例えば「何故
Sleep(120000) が 1 分 30 秒で終わってしまうのか?」というようにすべきです。


#質問者さんはどのぐらい ASP.NET の開発経験・知識をお持ちなのでしょうか?
 そのあたりを書いていただけると、その点を考慮した回答ができるのですか・・・

引用返信 編集キー/
■75864 / inTopicNo.6)  Re[4]: AjaxのendRequestについて
□投稿者/ いいががりでしょう (1回)-(2015/05/12(Tue) 12:20:46)
最初の書き込みが情報不足なのはその通りですが、その後の質問でどう見てもきちんと書いてるでしょう。
どこが見当違いなのですか?

> Sleep(120000) としたのに、何故 2 分でなくて、1 分 30 秒で応答か帰ってくるかは
> 全く別の問題です。それが今回の疑問であれば、質問の仕方を変えて、例えば「何故
> Sleep(120000) が 1 分 30 秒で終わってしまうのか?」というようにすべきです。

そんなことを書いてたらあなたは、Sleepか1分半で終わるとどうやって確認したのか?Sleep自体ではなく別のところに原因があるはずではないか?失礼だがとんちんかんなことを言っていないか?
みたいなことを言い出してるでしょう。

引用返信 編集キー/
■75865 / inTopicNo.7)  Re[3]: AjaxのendRequestについて
□投稿者/ 魔界の仮面弁士 (316回)-(2015/05/12(Tue) 12:37:16)
No75856 (こまっくま さん) に返信
> 1分30秒でadd_endRequestに入ってきてしまいます。
> どのようにすれば1分30分以上でも正常な動作をするのでしょうか?

Ajax は使いますが aspx は専門外なので、明確な回答はできないのですが、
この手の通信ライブラリって、90 秒とか 600 秒とかの壁がありますよね。


きちんと調べたわけでは無いですが、ASP.NET だと
 <asp:ScriptManager runat="server" AsyncPostBackTimeout="★既定値は90秒★"></asp:ScriptManager>
とか
 <httpRuntime executionTimeout="★既定値は110秒(v1.x では 90秒)★" />
みたいなものがあるようですが、PageRequestManager に対しては、
そういった指定を行えそうな箇所は無いのでしょうか。


IE の場合、IServerXMLHTTPRequest インターフェイスによる Ajax 通信なら
 resolveTimeout
 connectTimeout
 sendTimeout
 receiveTimeout
を、setTimeout メソッドで設定できますが、IXMLHTTPRequest の方には無いんですよね…。
引用返信 編集キー/
■75866 / inTopicNo.8)  Re[4]: AjaxのendRequestについて
□投稿者/ 魔界の仮面弁士 (317回)-(2015/05/12(Tue) 13:27:25)
No75865 (魔界の仮面弁士 ) に追記
> > 1分30秒でadd_endRequestに入ってきてしまいます。
> きちんと調べたわけでは無いですが、ASP.NET だと
>  <asp:ScriptManager runat="server" AsyncPostBackTimeout="★既定値は90秒★"></asp:ScriptManager>
> とか
>  <httpRuntime executionTimeout="★既定値は110秒(v1.x では 90秒)★" />
> みたいなものがあるようですが、PageRequestManager に対しては、
> そういった指定を行えそうな箇所は無いのでしょうか。

ScriptManager.AsyncPostBackTimeout プロパティかな? 外していたらすみません。
http://www.codeproject.com/Articles/51747/Solution-of-Error-PageRequestManagerTimeoutException
引用返信 編集キー/
■75867 / inTopicNo.9)  Re[3]: AjaxのendRequestについて
□投稿者/ WebSurfer (569回)-(2015/05/12(Tue) 20:52:14)
No75856 (こまっくま さん) に返信

> System.Threading.Thread.Sleep(120000) ' 時間稼ぎのためのダミーコード2分に設定

上記の「時間稼ぎ」とは、質問者さん自身が書いたコメントではなく、参考サイトのサ
ンプルコードをコメントごとコピペしたようですね。

質問者さんが書いたと勘違いしてました。だから「時間稼ぎ」って一体何を見当違いの
ことを言っているのだろうと思いました。

そして、やっていることは、オリジナルの Sleep(3000) を Sleep(120000) に書き換え
ただけで、そこ以外はサンプルコードをそっくりそのまま使って試したのですね?

その結果、期待した 2 分後ではなく、1 分 30 秒後に endRequest イベントが発生す
る。そして、(書いてないですが)重要なこととして、UpdatePanel が更新されないの
ですよね?

さらに、(これも書いてないですが)もっと重要な情報として、クライアントスクリプ
トが以下の例外をスローしているのではないですか?

Sys.WebForms.PageRequestManagerTimeoutException: The server request timed out.

その理解で正しければ、原因は、魔界の仮面弁士さんが指摘されている通り、クライア
ント側で設定された timeout だと思います。
引用返信 編集キー/
■75868 / inTopicNo.10)  Re[4]: AjaxのendRequestについて
□投稿者/ いいががりでしょう (2回)-(2015/05/12(Tue) 22:43:02)
> 質問者さんが書いたと勘違いしてました。だから「時間稼ぎ」って一体何を見当違いの
> ことを言っているのだろうと思いました。

通常2分かかる処理なので、スリープで2分時間稼ぎをする、と言う表現であっても別に見当違いでもなんでもないですね。
失礼ながらあなたはちょっと日本語の読解力が足りないのだと思います。
ちょくちょくちゃんと読めば分かることを読みとれずにとんちんかんな事言ってますからね。
引用返信 編集キー/
■75869 / inTopicNo.11)  Re[5]: AjaxのendRequestについて
□投稿者/ いいががりでしょう (3回)-(2015/05/12(Tue) 23:18:41)
> その理解で正しければ、原因は、魔界の仮面弁士さんが指摘されている通り、クライア
> ント側で設定された timeout だと思います。

Sleepが1分半で終わるとかかけって言ってたのはなんだったのか。
見当違いのこと書いてたようですね。
情報不足だったからとかでなく、sleepがなどとかけと言うのはどう見てもトンチンカンです。

他人をことを見当違いなどと言いがかりつける前にちょっとは自分の言動を見直してみたらどうか。
引用返信 編集キー/
■75870 / inTopicNo.12)  Re[5]: AjaxのendRequestについて
□投稿者/ WebSurfer (570回)-(2015/05/12(Tue) 23:40:39)
No75868 (いいががりでしょう さん) に返信

他人のレスに因縁をつけて何の役にも立たない余計なノイズを増やすんじゃなくて、
回答を書くことに労力を費やしてはいかが? 2ch とかじゃないんだから。

引用返信 編集キー/
■75871 / inTopicNo.13)  Re[6]: AjaxのendRequestについて
□投稿者/ いいがかりでしょう (1回)-(2015/05/13(Wed) 07:58:11)
No75870 (WebSurfer さん) に返信
> ■No75868 (いいががりでしょう さん) に返信
>
> 他人のレスに因縁をつけて何の役にも立たない余計なノイズを増やすんじゃなくて、
> 回答を書くことに労力を費やしてはいかが? 2ch とかじゃないんだから。

自分の言いがかりはノイズではなく役にたってると。
あなたに侮辱されて書き込めなくなった人の声ですよ。
方々で他人を侮辱しまくってるあなたがここは2CHじゃないとか。
俺の書き込みは普段のあなたの書き込みを真似ているわけですが。
引用返信 編集キー/
■75872 / inTopicNo.14)  Re[6]: AjaxのendRequestについて
□投稿者/ いいががりでしょう (4回)-(2015/05/13(Wed) 08:31:01)
No75870 (WebSurfer さん) に返信
> ■No75868 (いいががりでしょう さん) に返信
>
> 他人のレスに因縁をつけて何の役にも立たない余計なノイズを増やすんじゃなくて、
> 回答を書くことに労力を費やしてはいかが? 2ch とかじゃないんだから。

他人の書き込みに言いがかりをつけてる、しかも間違った書き込みにまずけじめをつけなさいね。
最近もそうやって技術的な指摘から逃げたのを見たなあ。
結局あなたは自分が何か言われるのが許せないだけでしょう。
自分が不利になるとそうやって他人のせいにして逃げることを最近覚えたのですか?
引用返信 編集キー/
■75873 / inTopicNo.15)  Re[7]: AjaxのendRequestについて
□投稿者/ ?±????? (1回)-(2015/05/13(Wed) 12:05:02)
レスを下さったみなさまへ


当方の質問の仕方が悪かったため
ご迷惑をお掛けしました。
申し訳ありません。


時間を延ばす方法ですが『AsyncPostBackTimeout』を
設定することにより期待する結果が得られました。

ありがとうございます。


解決済み
引用返信 編集キー/
■75874 / inTopicNo.16)  Re[7]: AjaxのendRequestについて
□投稿者/ WebSurfer (571回)-(2015/05/13(Wed) 12:49:08)
No75871 (いいがかりでしょう さん) に返信

> 自分の言いがかりはノイズではなく役にたってると。

それはあなたの独りよがりにすぎないのでは?

スレッドの質問と関係ないことで何か個人的に言いたいことがあるなら、他人の
スレッドに便乗して余計なノイズを増やすのは止めて、自分で新たに別スレッド
を立ててそこに書いてはいかが?

また、捨てアカを使って匿名・なりすましで書くのは卑怯です。そういう人は相
手にしたくないので、もし別スレッドを立てるならその点は是非よろしくお願い
します。

引用返信 編集キー/
■75875 / inTopicNo.17)  Re[8]: AjaxのendRequestについて
□投稿者/ WebSurfer (572回)-(2015/05/13(Wed) 12:50:49)
No75873 (?±????? さん) に返信

?±????? さんは、元の質問者の「こまっくま」さんですよね?
解決済み
引用返信 編集キー/
■75876 / inTopicNo.18)  Re[9]: AjaxのendRequestについて
□投稿者/ こまっくま (10回)-(2015/05/13(Wed) 15:31:17)
No75875 (WebSurfer さん) に返信
> ■No75873 (?±????? さん) に返信
>
> ?±????? さんは、元の質問者の「こまっくま」さんですよね?

失礼しました。
No75873を投稿したのは私(こまっくま)です。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -