#この記事の動作環境: Windows7 システム、javascript1.8.5&&html5 バージョン、Dell G3 コンピューター。ajax と fetch の違い: 1. ネイティブ XHR に基づく ajax の開発アーキテクチャは明確ではありませんが、fetch は ajax よりも使用が簡単な Promise の非同期処理メカニズムを使用します; 2. ajax は XMLHttpRequest を使用しますオブジェクトを使用してデータを要求し、フェッチはウィンドウを測定するグローバルな方法のみです。
ajax と fetch の違いは何ですか
1. ajax と fetch の違い:
(1)、ajax は XMLHttpRequest オブジェクトを使用してデータをリクエストし、fetch はウィンドウのメソッドです (2)、ajax はネイティブ XHR に基づいて開発されており、XHR 自体の構造は明確ではありません、代替手段(3). ajaxと比較して、fetchには優れた便利な記述方法があります(4). fetchはネットワークリクエストのエラーのみを報告し、400を扱います、成功したリクエストとして 500 件、 (5) を処理するにはカプセル化する必要があり、フェッチにはリクエストの進行状況をネイティブに監視する方法がなく、XHR は#2 できます。 ajax の使用法
ネイティブの記述方法は非常に役に立たないため、ほとんどのリクエストはカプセル化されるため、多くの人が自分で ajax リクエストを作成できない可能性があります。これらはすべて JQuery または Axios を使用してデータをリクエストします。var xhr= new XMLHttpRequest(); // 新建XMLHttpRequest对象xhr.onload= function(){ //请求完成 console.log(this.responseText); }// 发送请求:xhr.open('GET', '/user'); xhr.send();
var Ajax = { get: function(url,fn){ // XMLHttpRequest对象用于在后台与服务器交换数据 var xhr=new XMLHttpRequest(); xhr.open('GET',url,false); xhr.onreadystatechange=function(){ // readyState == 4说明请求已完成 if(xhr.readyState==4){ if(xhr.status==200 || xhr.status==304){ console.log(xhr.responseText); fn.call(xhr.responseText); } } } xhr.send(); }, // data应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式 post: function(url,data,fn){ var xhr=new XMLHttpRequest(); xhr.open('POST',url,false); // 添加http头,发送信息至服务器时内容编码类型 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.onreadystatechange=function(){ if (xhr.readyState==4){ if (xhr.status==200 || xhr.status==304){ // console.log(xhr.responseText); fn.call(xhr.responseText); } } } xhr.send(data); } }
②サーバーに大量のデータを送信する (POST のデータ量が無い)制限)
#次の内容を含むメッセージを送信します。不明な文字をユーザーが入力した場合、POST は GET よりも安定しており、信頼性が高くなります。
1: サーバー接続が確立されています (open メソッドが呼び出されています)
2: リクエストが受信されました (送信 メソッドが呼び出され、ヘッダーとステータスが利用可能です)
3: リクエストが処理中です (ダウンロード中、responseText 属性には既にデータの一部が含まれています)
4: リクエストが完了し、レスポンスの準備が完了しました (ダウンロード操作が完了しました)
3.fetch の使用法
1. 最初のパラメータは URL2. オプションの 2 番目のパラメータはさまざまな init オブジェクトを制御できます
3. 使用しますjs の Promise オブジェクト
var arr1 = [{ name: "haha", detail:"123"}]; fetch("url", { method: "post", headers: {//设置请求的头部信息 "Content-Type": "application/json" //跨域时可能要加上 //"Accept":"allication/json" }, //将arr1对象序列化成json字符串 body: JSON.stringify(arr1)//向服务端传入json数据 }).then(function(resp) { resp.json().then((data) => { }) });
AJAX ビデオ チュートリアル ]
以上がajaxとフェッチの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。