xmlhttprequest vs ajaxのフェッチAPI
コアポイント
-
JavaScriptでは、Fetch APIとXMLHTTPREQUESTの両方がHTTP要求を行うために使用されますが、Fetch APIは一般に、コードとエラー処理を簡素化する可能性を使用するため、より強力で柔軟と見なされます。ただし、すべてのブラウザがフェッチAPI、特に古いブラウザーをサポートするわけではありません。
- XMLHTTPREQUEST約束がないため、古くて複雑なものですが、すべてのブラウザで広くサポートされており、デフォルトでCookieを送信します。
- Fetch APIは、すべてのXHR機能をサポートしておらず、いくつかのオプションが面倒な場合があるため、AJAXテクノロジーの完全な代替品ではありません。また、タイムアウトをサポートせず、エラーキャプチャの実装をより複雑にします。
- Fetch APIには制限がありますが、JavaScriptでHTTPリクエストを行うための将来の方向です。ただし、比較的新しくて変化するため、開発者は今後数年間で慎重に使用する必要があります。
- 一般に、サーバーからデータを取得し、フルページの更新を実行することなくDOMを動的に更新するクライアントプロセスを一般的に参照するクライアントプロセスの一般用語として「ajax」を使用します。 Ajaxは、ほとんどのWebアプリケーションとシングルページアプリケーション(SPA)のコアテクノロジーです。
のトレードオフの比較
この記事では、XMLHTTPREQUESTの長所と短所とFetch APIの最新のAJAX実装を比較します。 2019年3月は、Ajaxの20周年を迎えます(ある程度)。 XMLHTTPREQUESTの最初の実装は、1999年にIE5.0のActiveXコンポーネントとしてリリースされました(尋ねないでください)。これには、フルページの更新を行わずにサーバーからデータを抽出する方法もありましたが、多くの場合、インジェクションやサードパーティのプラグインなどの不器用なテクニックに依存しています。 XMLHTTPREQUESTを開発するというマイクロソフトの主な目的は、ブラウザベースのOutlookメールクライアントに代わるものを提供することです。
ajaxからajax
へ
ajaxは、非同期JavaScriptとXMLの略語です。 「async」は間違いなく正しいですが、
おそらくJavaScriptですが、VBScriptとFlashもオプションです。
ペイロードはXMLである必要はありませんが、XMLは当時非常に人気がありました。任意のデータ形式を使用でき、最近ではJSONが通常推奨されています。
let xhr = new XMLHttpRequest(); xhr.open('GET', 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c'); // 请求状态更改事件 xhr.onreadystatechange = function() { // 请求完成? if (xhr.readyState !== 4) return; if (xhr.status === 200) { // 请求成功 - 显示响应 console.log(xhr.responseText); } else { // 请求错误 console.log('HTTP error', xhr.status, xhr.statusText); } }; // 开始请求 xhr.send();
XMLHTTPREQUESTオブジェクトには、他の多くのオプション、イベント、および応答プロパティがあります。たとえば、ミリ秒単位でのタイムアウトを設定して検出できます。
// 设置超时 xhr.timeout = 3000; // 3 秒 xhr.ontimeout = () => console.log('timeout', xhr.responseURL);
// 上传进度 xhr.upload.onprogress = p => { console.log( Math.round((p.loaded / p.total) * 100) + '%') ; };
// jQuery Ajax $.ajax('https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c') .done(data => console.log(data)) .fail((xhr, status) => console.log('error:', status));
について簡単に学びます
Fetch APIは、xmlhttprequestの最新の代替品です。一般的なヘッダー、リクエスト、および応答インターフェイスは一貫性を提供しますが、約束により、コールバックなしで簡単にチェーンおよび非同期/待ち望んでいます。上記のXHRの例は、よりシンプルなフェッチベースのコードに変換できます。これにより、返されたJSONを解析できます。フェッチはシンプルでエレガントで、理解しやすく、PWAサービスワーカーで広く使用されています。
古代のxmlhttprequestの代わりに使用してみませんか?fetch( 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c', { method: 'GET' } ) .then( response => response.json() ) .then( json => console.log(json) ) .catch( error => console.error('error:', error) );
残念ながら、Web開発はそれほど単純ではありません。フェッチはAjaxテクノロジーに完全に置き換えられていません...
ブラウザサポート
Fetch APIは非常によくサポートされていますが、Internet Explorerのすべてのバージョンで失敗します。 2017年以前にChrome、Firefox、およびSafariバージョンを使用するユーザーも問題が発生する場合があります。これらのユーザーは、ユーザーベースのごく一部のみを構成する場合があります...または、それは主要な顧客かもしれません。
コーディングを開始する前に必ず確認してください!さらに、Fetch APIは比較的新しく、成熟したXHRオブジェクトよりも多くの継続的な変更を受けます。これらの更新はコードを破る可能性は低いですが、今後数年間で何らかのメンテナンスが必要になると予想されます。
クッキーはデフォルトでは含まれていません
驚くべきことに、httpエラー(404ページが見つかりませんまたは500の内部サーバーエラーなど)は、catch()を実行しないようにします。通常、応答を解析および設定します。
fetch( 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c', { method: 'GET', credentials: 'same-origin' } )
タイムアウトはサポートされていません
Fetchはタイムアウトをサポートしておらず、リクエストはブラウザの選択された時間を持続します。たとえば、別の約束でフェッチをラップするには、さらなるコードが必要です。
…またはpromize.race()を使用します。これは、最初にフェッチまたはタイムアウトが完了したときに解析します。
abort fetch
何年もの間、フェッチを中止することは不可能でしたが、現在はAbortController APIを実装するブラウザでサポートされています。これにより、Fetch Initializationオブジェクトに渡すことができる信号がトリガーされます。
進捗状況
xmlhttprequest with fetch api? アプリケーションには、進行状況バーをアップロードする必要があるIEクライアントがない限り。
xmlhttpRequestとFetch apis についての XMLHTTPRequestとFetch APIの主な違いは何ですか? Fetch APIには、xmlhttprequestよりもいくつかの利点があります。それは約束を使用します。これにより、コードがより簡潔になり、読みやすくなり、エラー処理が容易になります。 Fetch APIには、リクエストオブジェクトと応答オブジェクトの一般的な定義を含む、より強力で柔軟な機能セットもあります。また、XMLHTTPREQUESTはそうではありませんが、他のソースにリクエストを行うこともできます。 Fetch APIを使用する主な欠点の1つは、すべてのブラウザがそれをサポートしているわけではないことです。特に、古いブラウザはフェッチAPIをサポートしない場合があります。これらの場合、xmlhttprequestまたはポリフィルを使用する必要がある場合があります。もう1つの欠点は、Fetch APIがデフォルトでCookieを送信しないことです。したがって、Cookieを送信する場合は、資格情報オプションを「含める」ために手動で設定する必要があります。 xmlhttprequestを使用することの欠点は何ですか?
xmlhttprequestを選択してAPIを取得する方法は?
同じプロジェクトでxmlhttprequestとFeth APIの両方を使用できますか?
JavaScriptでHTTPリクエストを行うためのXMLHTTPREQUESTとFETCH APIはありますか? let xhr = new XMLHttpRequest();
xhr.open('GET', 'https://www.php.cn/link/f589a241141007eb225cd68eed7bc06c');
// 请求状态更改事件
xhr.onreadystatechange = function() {
// 请求完成?
if (xhr.readyState !== 4) return;
if (xhr.status === 200) {
// 请求成功 - 显示响应
console.log(xhr.responseText);
}
else {
// 请求错误
console.log('HTTP error', xhr.status, xhr.statusText);
}
};
// 开始请求
xhr.send();
フェッチAPIは、約束の使用により、JavaScriptでHTTPリクエストを作成するためのより良い選択と見なされることがよくあります。約束により、コードがより簡潔になり、読みやすくなり、エラー処理が容易になります。 Fetch APIの機能は、XmlhttpRequestよりも強力で柔軟です。ただし、XmlhttpRequestは依然として広く使用され、サポートされており、フェッチAPIをサポートしていない古いブラウザをサポートする必要がある場合など、場合によってはより良い選択になる場合があります。
フェッチAPIはxmlhttprequestを置き換えることができますか?
はい、Fetch APIは、HTTPリクエストを作成するために使用されるJavaScriptのxmlhttprequestを置き換えることができます。 Fetch APIは新しいテクノロジーであり、より強力で柔軟な機能セットがあります。それは約束を使用します。これにより、コードがより簡潔になり、読みやすくなり、エラー処理が容易になります。ただし、XmlhttpRequestは依然として広く使用され、サポートされており、フェッチAPIをサポートしていない古いブラウザをサポートする必要がある場合など、場合によってはより良い選択になる場合があります。
フェッチAPIを使用することの利点は何ですか?
フェッチAPIを使用することの欠点は何ですか?
xmlhttprequestを使用することの利点は何ですか?
以上がxmlhttprequest vs ajaxのフェッチAPIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
