Ajaxの実装

jQueryのAjaxの方法が用意されています。

1 commonAjax:関数(actionNameの、メッセージ){
 2              VaRの結果。
3              $アヤックス({
 4                  非同期:5                  種類: "POST" 6                  URL:actionNameの、
 7                  データ型: "JSON" 8                  タイムアウト:5000、// 设置请求超时时间(毫秒)。
9                  のcontentType:「アプリケーション/ x-www-form-urlencodedで;のcharset = UTF-8" 10                  データ:{
 11                      メッセージ:メッセージ
 12                 }、
 13の                  成功:関数(データ){
 14の                     // 成功(データ)。
15                      結果= データ。
16                  }、
 17                  エラー:関数(jqXHR、textStatus、errorThrown){
 18                      場合(textStatusは"タイムアウト" == ){
 19                          = "タイムアウト"結果20                      }
 21                  }
 22              });
23              リターン結果;
24          }

 ネイティブJSはAjaxのメソッドを実装します。

VARアヤックス= { 
  GET:機能(URL、Fnが){
       // XMLHttpRequestオブジェクトは、バックグラウンドでサーバーとデータを交換するために使用された    
      のvar XHR = 新新のXMLHttpRequest();             
      xhr.open( 'GET'、URL、真の); 
      xhr.onreadystatechange = 関数(){
        // のreadyState ==は、要求が完了した説明。4 
        IF(xhr.readyState。4 && xhr.status == == == 200 || xhr.status 304である){ 
           // サーバからデータを取得 
           fn.call(この、xhr.responseText);   
        } 
      }; 
      xhr.send(); 
  }
  // およびデータT.あるべき「= A1&B = B1 」 、この文字列の形式を自動的JQのデータオブジェクトの文字列形式にこのオブジェクト場合 
  POST:関数(URL、データ、FN){
       VARの XHR = 新しい新規のXMLHttpRequest(); 
      xhr.open( "POST"、URL、真の);
       // サーバコンテンツの符号化タイプに情報を送信し、HTTPヘッダーを追加 
      xhr.setRequestHeader( "コンテンツタイプ"、 「アプリケーション/ X-WWW-形「-urlencoded );   
      xhr.onreadystatechange = 関数(){
          IF(xhr.readyState == 4 &&(|| xhr.status 200 xhr.statusある== == 304 )){ 
             fn.call(この、xhr.responseText) ; 
         } 
      }。
      xhr.send(データ)。
  } 
}

コメント:

1. オープン(方法、URL、非同期)メソッドは、3つのパラメータを取ります。

  方法:方法(GETまたはPOST)要求を送信するために使用されます。

    POSTと比較して、簡単かつ迅速に取得し、ほとんどのケースで使用することができます。

    ただし、次の場合には、POSTリクエストを使用してください:

  • キャッシュファイルを使用します(ファイルをやサーバ上のデータベースを更新)することはできません
  • サーバーへ(POSTデータの量を制限していない)、大量のデータを送信します
  • ユーザー入力を送信することは未知の文字が含まれている場合、POSTは、より安定してGETよりも信頼性が高いです

  URL:URL指定されたサーバーサイドスクリプトは、(ファイルは、ファイルの任意のタイプとすることができるようになの.aspや.phpのよう.TXTおよび.xml、またはサーバーのスクリプトファイル、など(リターン応答する前に、サーバー上でタスクを実行することができ) );

  非同期:規定は、非同期リクエスト(真)(偽)または同期処理すべきである。応答が処理の準備ができている場合、他のサーバからの応答を待っている間に、真のスクリプトが実行される応答、偽して、サーバーを待っに実行されます。

2. send()メソッドの要求がサーバーに送信されます。

3. onreadystatechangeには:readyStateの変更は、onreadystatechangeに機能が実行されるたびに処理サーバの応答が機能します。

4. readyStateの:そこにサーバーの応答ステータス情報。

  • 0:要求は(プロキシが作成されますが、まだopen()メソッドを呼び出して)初期化されていません
  • 1:サーバー接続が(確立されたopenメソッドが呼び出されました)
  • 2:要求(受信されたsendメソッドが呼び出されており、状態及びヘッドがすでに利用可能です)
  • 3:プロセスの要求は(ダウンロードには、responseText プロパティは、すでに一部のデータが含まれています)
  • 4:(ダウンロード操作が完了した)要求が完了した、と応答が準備ができています

5. responseText:応答データ列が得られます。

6. setRequestHeader():POSTは、HTTPヘッダーを追加するために、データを送信し、その後(データ)を送信し、そのデータ形式に注意し、場合GET、このようなURL A = A1&B = B1 URLは、パラメータ情報に直接適用を送信することができます?。

PS:ポリフィル基本原理を取得するには、その後、XHRの実装を使用しない場合は、window.fetch方法が存在するかどうかを検出することです。

 

おすすめ

転載: www.cnblogs.com/smallwangmusk/p/11391580.html