jqueryを使用して、ajax通信を同期でするような作りになっている(ええ、初心者で非同期より同期の方が理解しやすかったもので、同期通信で作りこんでしまったんです・・非同期通信に切り替えるにはすでに遅すぎるほどロジックが出来上がっちゃっているんです・・自爆です)
ところがここにきていろいろと問題発生で、タイムアウトを設定したいのですが、以下のようなことってできないでしょうか?
ソケットの
open
connect
write
read
別々にタイムアウトの時間を設定して処理する方法がありませんでしょうか?
最悪でも、ソケットのコネクションのタイムアウト(これを短くしたい・・5秒程度に)を設定して、write(post)とreadの時間は長くしたいと考えているのですが、ajaxでこのような細かい制御ってできないでしょうか?
いろいろ調べたのですがXMLHTTPRequestのtimeoutって、一連の処理のタイムアウトっぽいので、接続タイムアウトの実相ができないのかなと思ったりしているのですが、間違えてますでしょうか?
途中でtimeoutプロパティ(ミリ秒)の値を逐次設定することで対応できます。
var handle = new XMLHttpRequest(); handle.timeout = 5000; //5秒 handle.open("GET", "http://....", true); handle.timeout = 1000; //1秒 xhr.send(null);
XMLHttpRequestを直接呼び出すとできるのはわかりました。
2014/05/14 18:45:08ただ、jqueryのajaxという条件付きなもので・・・。
ご承知のようにjQuery.ajaxのtimeoutプロパティに設定できますが、これはjQuery.ajax全体に対するプロパティですから、writeとreadは別々のajaxで通信する必要があります。
2014/05/14 19:05:24