Fetch API は を使用しPromise
、どちらもサーバーに AJAX リクエストを実行できることは知っています。
XMLHttpRequest
Fetch API には、 (および をベースとしているため Fetch API ポリフィル)では利用できない追加機能がいくつかあると読みましたXHR
。
Fetch API にはどのような追加機能がありますか?
ベストアンサー1
fetch ではできても XHR ではできないことがいくつかあります。
- リクエスト オブジェクトとレスポンス オブジェクトで Cache API を使用できます。
- リクエストを実行し
no-cors
、CORS を実装していないサーバーから応答を取得できます。JavaScript から直接応答本体にアクセスすることはできませんが、他の API (Cache API など) と一緒に使用できます。 - ストリーミング応答 (XHR では応答全体がメモリにバッファリングされ、fetch では低レベルのストリームにアクセスできます)。これはまだすべてのブラウザで利用できるわけではありませんが、まもなく利用できるようになります。
XHR で実行できても fetch ではまだ実行できないことがいくつかありますが、遅かれ早かれ利用できるようになる予定です (「将来の改善」の段落をここで読んでください:https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/):
- リクエストを中止します(@sideshowbarker がコメントで説明しているように、これは現在 Firefox と Edge で機能します)。
- 進捗状況を報告します。
この記事https://jakearchibald.com/2015/thats-so-fetch/より詳細な説明が含まれています。