在前端Web开发里,AJAX(异步JavaScript和XML)就像一支法宝,让你的网页可以在不刷新的情况下与服务器悄悄聊天,无需重新刷新页面,也可以实现网页与服务器之间进行无缝通信。而这三招:XMLHttpRequest、jQuery中的$.ajax,以及现代的Fetch API,它们就像是三种神奇的武功,各自有各自的绝学。今天让我们探讨这三种不同的AJAX实现方式,一起来领略AJAX的魅力!
XMLHttpRequest对象是AJAX的基础,自其诞生以来就一直是不可或缺的组成部分。它就像是AJAX的老祖宗,像是用一把古老的键盘敲出来的代码,悠久而又经典。
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/api/data', true);
xhr.onreadystatechange = () => {
if (xhr.readyState == 4 && xhr.status == 200) {
let result = JSON.parse(xhr.responseText);
console.log(result);
}
};
xhr.send();
});
我们上面这段代码的功能简单来说就是通过XHR(XMLHttpRequest)方法实现向后端提供的URL拿取数据,当我们点击按钮时,就会发出请求实现AJAX从服务器异步获取歌曲信息并更新页面内容。让我们来对这些代码解释一下:
解释:
1.按钮触发事件: 通过JavaScript获取按钮元素,添加点击事件监听器。
2.AJAX请求配置: 当我们用老式的XMLHttpRequest对象配置GET请求,指定服务器URL为 http://192.168.31.45:3000/top/song?type=7 ,感觉就像是在用古董手机进行日常通讯。
3.异步处理: 设置回调函数,onreadystatechange监听XMLHttpRequest对象状态的变化,就像是你此刻守在手机旁等待消息的回复,确保在请求完成且成功时进行处理。状态码4表示通信完毕,200是服务器说“好的,拿走不谢”。
4.处理服务器响应: 最后解析从服务器返回的JSON数据,然后遍历歌曲信息,创建列表项并将获取到的信息内容添加到页面中。
注意: 由于可能涉及跨域请求,所以我们需要确保服务器正确配置CORS,以允许跨域资源的访问。
虽然我们上面用XHR完成了要求,但是这些代码写起来也太痛苦了。欸,这个时候我们就需要提到jQuery的的$.ajax了,它就像是轻量化的XHR,大大改善了代码的可读性。
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
$.ajax({
url: 'http://example.com/api/data',
method: 'GET',
dataType: 'json',
success: function (res) {
console.log(res);
},
error: function (xhr, status, error) {
console.error('Error:', xhr, status, error);
}
});
});
解释: 我们使用$.ajax时,需要配置相应的参数:
我们可以看到当我们使用了jQuery库大大简化了AJAX请求的过程,但是在此之前不要忘记引入我们jQuery库哦~
讲了两种以实现AJAX的方式,那么现代的Fetch API就像是AJAX的新晋小生,简单直接,不需要太多花里胡哨,请看下列代码。
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
fetch('http://example.com/api/data')
.then(data => data.json())
.then(res => {
console.log(res);
})
.catch(error => {
console.error('Error:', error);
});
});
解释:
在fetch api这个方法里面我们同样需要配置参数,但不多,简单粗暴。
看完这段代码,不知你是否有种赏心悦目,神清气爽地感觉。相较于传统的XHR方式,我们通过使用现代的Promise和Fetch API,更换成了更简洁和方便的方式来处理异步网络请求。
掌握这三招AJAX神功,你就像是一位不羁的武林少年,可以在网页的江湖里畅快自如地舞动。不同的招式适合不同的场景,所以,别拘泥于一招,放开心扉,开始你的AJAX江湖之旅吧!少年,愿你的代码逍遥自在,BUG永远躲不过你的剑!
阅读量:2013
点赞量:0
收藏量:0