
|
导读网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立... 网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。 本篇文章就给大家介绍$.ajax、 axios 、fetch分别是什么,是大家可以详细了解fetch的使用方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
答:Ajax是一种可以在浏览器和服务器之间使用异步数据传输(HTTP请求)的技术。使用它可以让页面请求少量的数据,而不用刷新整个页面。而传统的页面(不使用Ajax)要刷新部分内容,必须重载整个网页页面。
答:它基于的是XMLHttpRequest(XHR)。这是一个比较粗糙的API,不符合关注分离的设计原则(Separation of Concerns),配置和使用都不是那么友好。
答:基于上面的原因,各种ajax库引用而生,然而最有名的就是jQuery的API中的
答:综合上面所讲的各种因素,fetch这个api应运而生。但好用归好用,它存在着一些问题(这个问题下面详讲,并讲解相对应的解决方案),再加上兼容性问题(ie压根不支持),所以很多开发者使用了axios这个第三方库。
答: 其实,就我个人而言,我还是比较喜欢使用 fetch 的使用fetch(url, options)
.then(response => console.log(responese))
.catch(err => console.log(err))url:访问地址 请求参数配置 fetch存在的问题及解决方案
fetch('https://api.github.com/users/lvzhenbang/repos')
.then(res => {
console.log(res)
return res.text()
}).then(data => {
console.log(data)
})通过上面的代码,可以发现直接打印返回的 而反观 axios.get('https://api.github.com/users/lvzhenbang/repos')
.then(res => console.log(res));当然,这也不算是一个大问题,就是使用略显麻烦了点。
解决这个问题,需要在
也就是说 解决这个问题,我们可判断 fetch('https://api.github.com/usrs/lvzhenbang/repos')
.then(res => {
if (res.ok) {
return res.text()
} else {
return Promise.reject('请求失败')
}
}).then(data => {
console.log(data)
}).catch(err => {
console.log(err)
})如果不手动添加 axios.get('https://api.github.com/usrs/lvzhenbang/repos')
.then(res => console.log(res))
.catch(err => console.log(err));fetch 的优化由于 fetch('https://api.github.com/usrs/lvzhenbang/repos')
.then(res => {
return res.text()
.then(data => {
if (res.ok) {
return data
} elese {
return Promise.reject(json)
}
})
}).then(data => {
console.log(data)
}).catch(err => {
console.log(err)
})玩过express/koa的同学,或者对后端有一定了解的同学都知道,服务器在某些情况下也会返回一些提示信息,那么应该如何处理呢?常见的错误提示包括一个状态码(status)和提示信息(msg),代码修改如下: server: res.status(404).send({
err: 'not found'
})client: fetch('https://api.github.com/usrs/lvzhenbang/repos')
.then(handleResponse).then(data => {
console.log(data)
}).catch(err => {
console.log(err)
})
function handleResponse (res) {
return Promise.reject(Object.assign({}, res.text(), {
status: res.status,
msg: res.statusText
}))
}兼容解决方案以上问题解决并优化fetch的使用后,发现fetch还是一个不错的选择。针对不同使用情况可以作如下处理: 首先,要引入 其次,要引入 然后,引入 最后,引入 当然,你也不需要针对性的解决这些问题,GitHub团队提供了一个polyfill解决方案,你不需要一步步的是实现。只需要两步:
import 'whatwg-fetch' window.fetch(url, options) 其他的使用和 哪些情况可以放弃使用fetch
具体 以上就是$.ajax、 axios 、fetch是什么?详解fetch的使用方法的详细内容,更多请关注php中文网其它相关文章! 网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。 |
温馨提示:喜欢本站的话,请收藏一下本站!