如何停止多个ajax请求
How to stop multiple ajax requests?
<button id="getInfo">Get information</button>
<div id="infoResponse"></div>
<script>
document.getElementById('getInfo').addEventListener('click', function(){
getInfo();
}, false);
function getInfo() {
var xml = new XMLHttpRequest();
xml.onreadystatechange = function() {
if(xml.readyState == 4 && xml.status == 200) {
document.getElementById('infoResponse').innerHTML = xml.responseText;
}
};
xml.open('GET', 'test.php', true);
xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xml.send(null);
}
</script>
如果用户多次点击按钮,如何停止再次运行请求?我想实现类似于jQuery one()事件函数的东西
谢谢
一个点击回调可以通过在某处设置状态来知道另一个点击回调。
如果你有一个旋转加载器,你可以寻找它,所以如果$('.spinner').length > 0
,那么你不继续在.getInfo()
中发出XHR请求。
还可以取消绑定和重新绑定事件侦听器。点击,取消绑定,在XHR成功回调时,重新绑定点击处理程序。
众多策略中的两种。好运!
我的解决方案是这要感谢@KevinB
**document.getElementById('test').addEventListener('click', getInfo);**
**function getInfo(e) {**
var xml = new XMLHttpRequest();
**e.target.removeEventListener(e.type, arguments.callee);**
xml.onreadystatechange = function() {
if(xml.readyState == 4 && xml.status == 200) {
document.getElementById('infoResponse').innerHTML = xml.responseText;
}
};
xml.open('GET', 'test.php', true);
xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xml.send(null);
}
相关文章:
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成