vue防止介面重複請求實現方法

2021-10-09 19:51:38 字數 1246 閱讀 2238

場景:通常專案中在每個請求介面的方法中新增乙個請求鎖,防止重複請求,但是這樣比較low,**比較冗餘,於是新增乙個全域性的方法,就不用每次請求界面前手動編寫請求鎖,減少編碼和工作量。

方法:

在axios的請求和響應***裡邊使用axios的canceltoken方法即可實現。

例項:

// 封裝axios的請求,返回重新封裝的資料格式

// 對錯誤的統一處理

import axios from 'axios'

import errorhandle from './errorhandle'

const canceltoken = axios.canceltoken

class httprequest // 物件的key為每個正在請求的介面,value為取消該介面的方法

} // 獲取axios配置

getinsideconfig () ,

timeout: 10000

}return config

} removepending (key, isrequest = false)

// 如果不是同一介面重複請求,則刪除pending物件裡該請求對應的key

delete this.pending[key]

} // 設定***

interceptors (instance) )

return config

}, (err) => )

// 響應請求的***

instance.interceptors.response.use((res) => else

}, (err) => )

} // 建立例項

Vue實現節流,防止重複提交

1 在methods中定義節流函式 desc 函式節流,規定在乙個單位時間內,只能觸發一次函式,如果這個單位時間內觸發多次函式,只有一次生效 典型的案例就是滑鼠不斷點選觸發,規定在n秒內多次點選只有一次生效。param func 函式 param wait 延遲執行毫秒數 throttle func...

php 防止表單重複提交兩種實現方法

php 防止表單重複提交 1 前端解決 方法一 可以通過前端來解決。當使用者點了提交按鈕之後,先使用js進行有效性判斷,沒問題後,將提交按鈕 禁用 掉。然後再提交!方法二swgcutijcb 使用ajax提交表單。點了提交按鈕後,禁用提將按鈕,或者設定乙個狀態值,將其設為1,表示正在提交。再提交時判...

vue實現每隔幾秒請求一次介面(輪詢)

專案中我們經常需要實現輪詢 每隔幾秒請求一次介面重新整理資料 一般都會使用setinterval,但要注意單純使用它會導致頁面卡死,關於怎麼解決這個問題感謝年樹先生的分享,在此做個記錄方便以後查閱 原博位址如下 解決方法如下 window.setinterval 30000 解釋 setinterv...