ホームページ ウェブフロントエンド フロントエンドQ&A ajaxとフェッチの違いは何ですか

ajaxとフェッチの違いは何ですか

Dec 29, 2021 pm 06:53 PM
ajax fetch

違い: 1. Fetch はリクエストの進行状況をネイティブに監視できませんが、ajax はネイティブ XHR に基づいて開発されており監視できます; 2. ajax と比較して、fetch はより優れた便利な記述方法を備えています; 3 . fetch のみ ネットワーク リクエストではエラーが報告され、400 と 500 は成功したリクエストとみなされますが、ajax はそうではありません。

ajaxとフェッチの違いは何ですか

このチュートリアルの動作環境: Windows7 システム、jquery1.10.2 バージョン、Dell G3 コンピューター。

ajax と fetch の違い:

(1) Ajax は XMLHttpRequest オブジェクトを使用してデータをリクエストしますが、fetch はウィンドウ メソッド

(2). Ajax はネイティブ XHR をベースに開発されています. XHR 自体の構造は明確ではありません. fetch の代替手段は既に存在します.

##(3). ajax と比較すると、fetch の方が優れています

(4) を記述する便利な方法で、フェッチはネットワーク リクエストのエラーのみをレポートし、400 と 500 を成功したリクエストとして扱います。これらは処理のためにカプセル化する必要があります。 )、fetch はリクエストの進行状況をネイティブに監視できませんが、XHR はおそらく、自分で ajax リクエストを作成する方法を知らない人が多いでしょう。これらはすべて JQuery または Axios を使用してデータをリクエストします

var xhr= new XMLHttpRequest(); // 新建XMLHttpRequest对象
xhr.onload= function(){ //请求完成
  console.log(this.responseText);
}
// 发送请求:
xhr.open('GET', '/user');
xhr.send();
ログイン後にコピー

このようなリクエストが送信されます。単純なリクエストを送信するのに非常に多くの行のコードを記述する必要があり、非常に面倒です。もちろん、実際の開発ではこのようには記述しません。そうしないと、コードが冗長で読みやすくなります。promise を使用してカプセル化してください。

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);
    }
}
ログイン後にコピー
コード コメント:

1,

open (method, url, async) メソッドには 3 つのパラメータが必要です:

method: リクエストの送信に使用されるメソッド (GET または POST)。 POST を使用すると、GET がより簡単になります また高速で、ほとんどの場合に機能しますが、次の状況では POST リクエストを使用してください:

①キャッシュ ファイルが使用できない (サーバー上のファイルまたはデータベースの更新)


②大量のデータをサーバーに送信する (POST にはデータ制限がありません)

##③不明な文字を含むユーザー入力を送信する場合、POST は GET よりも安定しており、信頼性が高くなります

url: サーバー側スクリプトの URL を指定します (ファイルは、.txt や .xml などの任意のタイプのファイル、または .asp や .php などのサーバー スクリプト ファイル (タスクを実行できる) ));
  • async: リクエストを非同期 (true) または同期 (false) で処理することを指定します。true は、待機中に他のスクリプトを実行することを意味します。サーバーが応答するように要求し、応答の準備ができたら要求に応答します。 Process; false は、実行する前にサーバーの応答を待つことを意味します。

    2. send() メソッドはリクエストをサーバーに送信できます。

    3. onreadystatechange: サーバーの応答を処理する関数があり、readyState が変化するたびに onreadystatechange 関数が実行されます。
  • 4.readyState: サーバー応答のステータス情報を保存します。

  • 0: リクエストは初期化されていません (プロキシは作成されていますが、open() メソッドが呼び出されていません)

1:サーバー接続が確立されました (オープン メソッドが呼び出されています)

2: リクエストが受信されました (送信メソッドが呼び出され、ヘッダーとステータスが利用可能です)

  • 3: リクエストは処理中です (ダウンロード中、responseText 属性にはすでにデータの一部が含まれています)

  • #4: リクエストは完了しており、応答の準備が完了しました (ダウンロード操作が完了しました)

  • 5.responseText: 応答データを文字列形式で取得します。

  • 6.setRequestHeader(): POST がデータを送信する場合は、HTTP ヘッダーを追加して送信(データ)するために使用されます。データ形式に注意してください。GET が情報を送信する場合は、直接情報を送信します。 URL にパラメータを追加します。はい、例: url?a=a1&b=b1。

  • fetch 使用法
  • 1. 最初のパラメータは URL
  • 2. 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) => {
                        
            })
        });
    ログイン後にコピー
    すべての IE ブラウザは fetch() メソッドをサポートせず、サーバーはステータス コード 400 500 を返します。拒否されません【関連チュートリアルの推奨事項:

    AJAX ビデオ チュートリアル

    以上がajaxとフェッチの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

jQuery AJAX リクエストで発生した 403 エラーを解決する方法 jQuery AJAX リクエストで発生した 403 エラーを解決する方法 Feb 20, 2024 am 10:07 AM

タイトル: jQuery AJAX リクエストの 403 エラーを解決する方法とコード例。403 エラーは、サーバーがリソースへのアクセスを禁止するリクエストを指します。このエラーは通常、リクエストにアクセス許可がないか、サーバーによって拒否されたために発生します。 jQueryAJAX リクエストを行うときにこのような状況に遭遇することがありますが、この記事ではこの問題の解決方法とコード例を紹介します。解決策: 権限を確認します。まず、要求された URL アドレスが正しいことを確認し、リソースにアクセスするための十分な権限があることを確認します。

jQuery AJAXリクエスト403エラーを解決する方法 jQuery AJAXリクエスト403エラーを解決する方法 Feb 19, 2024 pm 05:55 PM

jQuery は、クライアント側の開発を簡素化するために使用される人気のある JavaScript ライブラリです。 AJAX は、Web ページ全体をリロードせずに、非同期リクエストを送信し、サーバーと対話するテクノロジーです。ただし、jQuery を使用して AJAX リクエストを行うと、403 エラーが発生することがあります。 403 エラーは通常、セキュリティ ポリシーまたは権限の問題が原因で、サーバーによってアクセスが拒否されたエラーです。この記事では、jQueryAJAX リクエストで 403 エラーが発生した場合の解決方法について説明します。

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? jQuery AJAX エラー 403 の問題を解決するにはどうすればよいですか? Feb 23, 2024 pm 04:27 PM

jQueryAJAX エラー 403 の問題を解決するにはどうすればよいですか? Web アプリケーションを開発する場合、非同期リクエストを送信するために jQuery がよく使用されます。ただし、jQueryAJAX の使用時に、サーバーによってアクセスが禁止されていることを示すエラー コード 403 が発生する場合があります。これは通常、サーバー側のセキュリティ設定が原因ですが、回避する方法があります。この記事では、jQueryAJAX エラー 403 の問題を解決する方法と具体的なコード例を紹介します。 1.作る

PHP と Ajax: 動的に読み込まれるコンテンツを作成するためのソリューション PHP と Ajax: 動的に読み込まれるコンテンツを作成するためのソリューション Jun 06, 2024 pm 01:12 PM

Ajax (非同期 JavaScript および XML) を使用すると、ページをリロードせずに動的コンテンツを追加できます。 PHP と Ajax を使用すると、製品リストを動的にロードできます。HTML はコンテナ要素を含むページを作成し、Ajax リクエストはロード後に要素にデータを追加します。 JavaScript は Ajax を使用して XMLHttpRequest を通じてサーバーにリクエストを送信し、サーバーから JSON 形式で商品データを取得します。 PHP は MySQL を使用してデータベースから製品データをクエリし、それを JSON 形式にエンコードします。 JavaScript は JSON データを解析し、ページ コンテナーに表示します。ボタンをクリックすると、製品リストをロードするための Ajax リクエストがトリガーされます。

PHP と Ajax: オートコンプリート提案エンジンの構築 PHP と Ajax: オートコンプリート提案エンジンの構築 Jun 02, 2024 pm 08:39 PM

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

Ajax フレームワークを理解する: 5 つの一般的なフレームワークを探索する Ajax フレームワークを理解する: 5 つの一般的なフレームワークを探索する Jan 26, 2024 am 09:28 AM

Ajax フレームワークを理解する: 特定のコード例を必要とする 5 つの一般的なフレームワークを調べます。 はじめに: Ajax は、最新の Web アプリケーション開発において不可欠なテクノロジの 1 つです。非同期データ対話のサポートやユーザー エクスペリエンスの向上などの機能により、フロントエンド開発に不可欠な要素となっています。 Ajax フレームワークをよりよく理解して習得するために、この記事では 5 つの一般的な Ajax フレームワークを紹介し、読者がこれらのフレームワークの使用法と利点を深く理解できるように具体的なコード例を示します。 1. jQuery jQuery は現在最も

Ajax機能を利用した非同期データ交換 Ajax機能を利用した非同期データ交換 Jan 26, 2024 am 09:41 AM

Ajax 機能を使用して非同期データ対話を実現する方法 インターネットと Web テクノロジーの発展に伴い、フロントエンドとバックエンド間のデータ対話が非常に重要になってきました。ページの更新やフォームの送信などの従来のデータ操作方法では、ユーザーのニーズを満たすことができなくなりました。 Ajax (非同期 JavaScript および XML) は、非同期データ対話のための重要なツールとなっています。 Ajax により、Web で JavaScript と XMLHttpRequest オブジェクトを使用できるようになります

See all articles