以下是一个使用AJAX来保持发布之前的请求的示例代码:
// 创建一个全局变量来保存之前的请求
var previousRequest = null;
function sendRequest(data) {
// 如果之前有未完成的请求,则取消它
if (previousRequest !== null) {
previousRequest.abort();
}
// 创建一个新的AJAX请求
var xhr = new XMLHttpRequest();
// 设置请求方法和URL
xhr.open('POST', '/your/url', true);
// 设置请求头
xhr.setRequestHeader('Content-Type', 'application/json');
// 发送请求
xhr.send(JSON.stringify(data));
// 保存新的请求到全局变量
previousRequest = xhr;
// 监听请求完成的事件
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
// 请求完成后,将之前的请求置为null
previousRequest = null;
// 处理服务器响应
if (xhr.status === 200) {
// 请求成功
var response = JSON.parse(xhr.responseText);
// 处理响应数据
} else {
// 请求失败
// 处理错误
}
}
};
}
// 例子使用方法:
var requestData = { key: 'value' }; // 请求的数据
sendRequest(requestData);
在上面的示例中,我们创建了一个全局变量previousRequest
来保存之前的请求。每次发送新的请求之前,我们首先检查previousRequest
是否为空,如果不为空,则取消掉之前的请求。
然后,我们创建一个新的XMLHttpRequest对象,设置请求的方法和URL,并发送请求。在请求完成的回调函数中,我们将previousRequest
设置为null,表示该请求已经完成。
请注意,这只是一个简单的示例,实际应用中可能会有更多的处理和错误处理。