jQueryとExtJSのtimeOutタイムアウト設定とeventイベント処理
7046 ワード
ajaxリクエストはどのようにタイムアウト時間をカスタマイズし、対応するタイムアウトイベントを処理しますか?
jQueryの場合、タイムアウトはtimeoutパラメータを直接設定し、errorイベントで2番目のパラメータをキャプチャし、「timeout」であればタイムアウトイベントがキャプチャされたことを示し、非常に明確である.
例:
ExtJSのデフォルトタイムアウト時間は30 sであり、それを超えるとajax要求に失敗し、http status code 408になる.
ExtJSのタイムアウトメソッドを設定するにはExt.dataが必要である.Connectionオブジェクト、およびrequestexceptionイベントをスナップします.例:
jQueryの場合、タイムアウトはtimeoutパラメータを直接設定し、errorイベントで2番目のパラメータをキャプチャし、「timeout」であればタイムアウトイベントがキャプチャされたことを示し、非常に明確である.
例:
$.ajax({
type: "POST",
contentType: "application/json",
url: "../ws/MyService.asmx/test",
data: '{"email":"'+email+'"}',
timeout: 30000, // :30
dataType: 'json',
error: function(XMLHttpRequest, textStatus, errorThrown){
//TODO: status, http status code, 408
// : , ( ) null ,
// "timeout", "error", "notmodified" "parsererror"。
},
success: function(result) {
// TODO: check result
}
});
,error XMLHttpRequest :
XMLHttpRequest.readyState:
0 - ( ) send()
1 - ( ) send() ,
2 - ( )send() ,
3 - ( )
4 - ( ) ,
XMLHttpRequest.status :
HTTP
1xx-
。 , 1xx 。
100- 。
101- 。
2xx-
。
200- 。 。
201- 。
202- 。
203- 。
204- 。
205- 。
206- 。
3xx-
。 , , 。
301- , 。
302- 。
304- 。
307- 。
4xx-
, 。 , , 。400- 。
401- 。IIS 401 , 。 , IIS :
401.1- 。
401.2- 。
401.3- ACL 。
401.4- 。
401.5-ISAPI/CGI 。
401.7– Web URL 。 IIS6.0 。
403- :IIS 403 , :
403.1- 。
403.2- 。
403.3- 。
403.4- SSL。
403.5- SSL128。
403.6-IP 。
403.7- 。
403.8- 。
403.9- 。
403.10- 。
403.11- 。
403.12- 。
403.13- 。
403.14- 。
403.15- 。
403.16- 。
403.17- 。
403.18- URL。 IIS6.0 。
403.19- CGI。 IIS6.0 。
403.20-Passport 。 IIS6.0 。
404- 。
404.0-( )– 。
404.1- Web 。
404.2-Web 。
404.3-MIME 。
405- HTTP ( )
406- MIME 。
407- 。
412- 。
413– 。
414- URI 。
415– 。
416– 。
417– 。
423– 。
5xx-
。
500- 。
500.12- Web 。
500.13-Web 。
500.15- Global.asa。
500.16–UNC 。 IIS6.0 。
500.18–URL 。 IIS6.0 。
500.100- ASP 。
501- 。
502-Web 。
502.1-CGI 。
502.2-CGI 。application.
503- 。 IIS6.0 。
504- 。
505-HTTP 。
FTP
1xx-
, 。
110 。
120 , nnn 。
125 , 。
150 , 。
2xx-
。 。200 。
202 , 。
211 , 。
212 。
213 。
214 。
215NAME , ,NAME AssignedNumbers 。
220 , 。
221 。 , 。
225 , 。
226 。 ( , )。
227 (h1,h2,h3,h4,p1,p2)。
230 , 。
250 , 。
257 “PATHNAME”。
3xx-
, 。331 , 。
332 。
350 。
4xx-
, 。 , 。421 , 。 , 。
425 。
426Connectionclosed;transferaborted.
450 。 ( , )。
451 : 。
452 。 。
5xx-
, 。 , 。500 , 。 。
501 。
502 。
503 。
504 。
530 。
532 。
550 。 ( , , )。
551 : 。
552 : ( )。
553 。 。
FTP
150-FTP :21 ,20 。 150 20 , 。
226- 20 , 。 , 。
230- , 。 。
331- , 。 , 。
426- , , 。
530- , 。 , , 。 ,IIS 。
550- , 。 , GET , PUT 。
ExtJSのデフォルトタイムアウト時間は30 sであり、それを超えるとajax要求に失敗し、http status code 408になる.
ExtJSのタイムアウトメソッドを設定するにはExt.dataが必要である.Connectionオブジェクト、およびrequestexceptionイベントをスナップします.例:
var conn=new Ext.data.Connection({
url: "../ws/MyService.asmx/test",
timeout : 60000, // , 60 ( 30s)
autoAbort : false,
disableCaching : true ,
method : "GET"
});
var proxy = new Ext.data.HttpProxy(conn);
proxy.getConnection().on("requestcomplete", function(sender, response, options){
// ,response.status = 200, response.statusText = 'OK'
});
proxy.getConnection().on("requestexception", function(sender, response, options){
// , esponse.status ( http status code ) response.statusText
});
var store = new Ext.data.Store({
proxy: proxy,
reader: myReader, // reader
baseParams: {myargument:'myargumentValue'}, //
remoteSort: false
});
store.load();