目标:当点击最新请求的时候,将上一次未完成的请求取消掉
- 通过定义变量来存储表示是否正在发送请求的布尔值
- 当用户点击发送请求的时候,开始判断这个变量是否为true,如果为true,则取消请求
- 然后将变量置为true,直到检测到返回状态码为4将变量置为false
代码
let isSending = false; btn[0].onclick = function() { // 在此处判断是否正在发送,如果正在发送则取消 if(isSending) xhr.abort(); isSending = true; xhr = new XMLHttpRequest(); xhr.open("GET","http://localhost:8000/cancel"); xhr.send(); xhr.onreadystatechange = function() { if(xhr.readystate === 4) { isSending = false; } } };
实现效果