fetch、ajax 和 xhr 之间的区别
Posted
技术标签:
【中文标题】fetch、ajax 和 xhr 之间的区别【英文标题】:Difference between fetch, ajax, and xhr 【发布时间】:2019-02-15 02:03:21 【问题描述】:这3种调用方式有什么区别?我在我当前的项目中使用 fetch 并且看不出它们之间有任何真正的区别。为什么在 javascript XD 中需要有 30 种不同的方式来做事。
谢谢。
【问题讨论】:
What is the difference between fetch and jquery ajax?的可能重复 ajax 只是一个术语,除非你的意思是 jQuery 的 ajax 方法,它只是在内部使用 xhr 【参考方案1】:Ajax 是一个流行词,意思是“在不离开页面的情况下从 JavaScript 发出 HTTP 请求”。
XMLHttpRequest
和 fetch
是由浏览器提供的 API,允许从 JavaScript 发出 HTTP 请求。
XMLHttpRequest
从 90 年代就已经存在,并且是事件驱动的,要求您绑定事件侦听器以检测数据何时到达。
fetch
是较新的并且是围绕 Promises 构建的,Promises 现在是在 JavaScript 中执行异步操作的首选方式。除了 Internet Explorer 之外,它已充分确立为 supported 的所有重要位置。但是,它确实缺少 `XMLHttpRequest 提供的某些功能(例如进度监控)。
简而言之,有两种(不是 30 种)专用的 Ajax 方法,其中一种是现代的。
有关如何使用它们的实用介绍,MDN 为您提供:
Using XMLHttpRequest Using Fetch还有各种库围绕 fetch
或 XMLHttpRequest
提供更方便的 API(例如,Node.js 和浏览器之间的一致 API 或与 Angular 等框架的集成)。
【讨论】:
以上是关于fetch、ajax 和 xhr 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章