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

jQuery 異步請求防重複提交:鎖標誌位與按鈕禁用雙重保險

     編輯:程式設計綜合問答

核心思路

設置鎖變量,請求發出前檢查並加鎖,完成後解鎖;同時禁用按鈕防止用戶瘋狂點擊。

實現模式

let isRequesting = false;
$('#likeBtn').on('click', function() {
    if (isRequesting) return;
    const $btn = $(this).prop('disabled', true);
    isRequesting = true;

    $.ajax({
        url: '/api/like',
        method: 'POST',
        data: { id: 123 }
    }).done(() => {
        // 更新 UI
    }).fail(() => {
        alert('操作失敗');
    }).always(() => {
        isRequesting = false;
        $btn.prop('disabled', false);
    });
});

進階:防抖/節流

若允許合併短時間內多次點擊為一次請求,可用 `lodash.debounce` 或手動 `setTimeout` 實現節流。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved