天天看點

Ajax-14:請求重複發送問題

目标:當點選最新請求的時候,将上一次未完成的請求取消掉

  • 通過定義變量來存儲表示是否正在發送請求的布爾值
  • 當使用者點選發送請求的時候,開始判斷這個變量是否為true,如果為true,則取消請求
  • 然後将變量置為true,直到檢測到傳回狀态碼為4将變量置為false

https://link.juejin.cn?target= 代碼

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;
        }
    }
};
      

實作效果

Ajax-14:請求重複發送問題