jQueryの$です.ajax設定タイムアウト時間

2354 ワード

jQueryのajaxモジュールは非常に強力な機能をカプセル化しており、ajaxリクエストを送信するときにタイムアウトの時間を望んでいる場合があり、プログラムがしばらくデータを要求できないときにフィードバックしたいと思っています.幸いなことにjQueryはこのようなパラメータを提供してくれました:timeout.今日試して、記録を作りました.
まず実験の前に、デフォルトのタイムアウト時間はいくらですか?この配置はいったいどこで設定されているのか.jQueryでは?それともapacheの中?PHP中?
検索した結果、以下の結論が得られた.
①jQueryはデフォルトのタイムアウト時間がなく、パラメータのみで構成できる.
②apache 2のデフォルトタイムアウト時間は300秒ですが、httpdにいます.confでTimeout 10を設定しても、まったく役に立たず、何が起こっているのか分からない.
  ③php.iniではmax_が1つしか見つかりませんexecution_timeはスクリプトの最長実行時間を構成しますが、大丈夫そうです.
知能指数がせっかちだ...どなたかご存知の方、ぜひ教えてくださいね~~
次に、jQueryのtimeoutパラメータを見てみましょう.値はNumberタイプで、単位はミリ秒です.タイムアウト時に定義した処理関数を実行するには、errorパラメータに次のコードを配置します.
$.ajax({
    url : 's.php',
    timeout : 3000,
    error : function(xhr,textStatus){
      console.log('error:'+textStatus);
    },
   });

s.phpの内容はsleep(100)である.これによりerror:timeoutが3秒後に出力され、textStatusはエラーの内容となります.これはまだ役に立ちます.error関数で他の処理を行う場合は、タイムアウトと混同しないように、次のように書くことができます.
error : function(xhr,textStatus){
      if(textStatus=='timeout'){
        //       
      }
      else{
        //       
      }
    }

successでもerrorでもcomplete関数が実行されるため、completeに関数を書くこともできます.
これにより、タイムアウトの動作を簡単に指定できます.しかし、手作りの前に、ネット上で文章を検索するとき、timeoutパラメータがグローバルな設定を上書きすると説明されているので、私はまだ少しデマを消します.私はすぐに菊の花がきつくなったのを見て、まさか私はここで一度設定して、ページの上で$を使います.ajaxの時は3秒後にタイムアウトしますか?公式サイトに行ってドキュメントを見ると、元の文はこう書いてあります.「This will override any global timeout set with $.ajaxSetup().」$を覆うのか.ajaxSetup()の設定は、私が押しても始まらない$です.ajaxSetup()という関数は、何もありません.