首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

瀏覽器開發者工具中 Canceled 請求含義:用戶主動取消導航

     編輯:程式設計綜合問答

現象

Servlet 故意 Thread.sleep(2000),用戶快速多次點擊提交按鈕,Network 面板顯示多個請求,前幾個狀態為 Canceled,最後一個正常返回。

Network面板截圖

解釋

  • Canceled:瀏覽器**主動取消**了該請求的響應處理;
  • 原因:用戶發起新的導航/提交(點擊鏈接、再次提交表單、跳轉頁面),瀏覽器放棄正在進行的舊請求;
  • 服務端代碼**仍繼續執行完成**(控制台輸出多次),只是瀏覽器忽略了響應體;
  • 非錯誤,屬正常用戶行為導致的瀏覽器優化機制。

前端防重複提交建議

let submitting = false;
form.addEventListener('submit', e => {
    if (submitting) { e.preventDefault(); return; }
    submitting = true;
    submitBtn.disabled = true;
    // AJAX 提交完成後 submitting = false
});
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved