人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jqueryの同期通信ajaxにタイムアウトを設定する方法。
jqueryを使用して、ajax通信を同期でするような作りになっている(ええ、初心者で非同期より同期の方が理解しやすかったもので、同期通信で作りこんでしまったんです・・非同期通信に切り替えるにはすでに遅すぎるほどロジックが出来上がっちゃっているんです・・自爆です)
ところがここにきていろいろと問題発生で、タイムアウトを設定したいのですが、以下のようなことってできないでしょうか?
ソケットの
open
connect
write
read
別々にタイムアウトの時間を設定して処理する方法がありませんでしょうか?
最悪でも、ソケットのコネクションのタイムアウト(これを短くしたい・・5秒程度に)を設定して、write(post)とreadの時間は長くしたいと考えているのですが、ajaxでこのような細かい制御ってできないでしょうか?
いろいろ調べたのですがXMLHTTPRequestのtimeoutって、一連の処理のタイムアウトっぽいので、接続タイムアウトの実相ができないのかなと思ったりしているのですが、間違えてますでしょうか?

●質問者: kameoyaji_2
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● snow0214
●100ポイント

途中でtimeoutプロパティ(ミリ秒)の値を逐次設定することで対応できます。

var handle = new XMLHttpRequest();
handle.timeout = 5000; //5秒
handle.open("GET", "http://....", true);
handle.timeout = 1000; //1秒
xhr.send(null);

kameoyaji_2さんのコメント
XMLHttpRequestを直接呼び出すとできるのはわかりました。 ただ、jqueryのajaxという条件付きなもので・・・。

snow0214さんのコメント
ご承知のようにjQuery.ajaxのtimeoutプロパティに設定できますが、これはjQuery.ajax全体に対するプロパティですから、writeとreadは別々のajaxで通信する必要があります。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ