注意: 不要单独声明一个 boolean 类型的变量和属性,如果这样会污染局部和全局对象,也不够集中化处理(也就说没有封装)。

// 私有属性
const _ary = []
/*** @function Submitting 某次提交还在【提交中】* @param {type: object} obj 最好是引用类型,引用的地址是不变的(类似java 的 equal)* @return { type: boolean } true 提交中 | false 没在提交中*/
export const Submitting = function(obj) {const index = _ary.indexOf(obj)if (index === -1) {_ary.push(obj)return false}return true
}
/*** @function SubmitEnd 提交【 完成了】* @param {*} obj  存在,某次提交完成 | 不存在,所有提交完成*/
export const SubmitEnd = function(obj) {// 类似柯拟化if (!obj) return _CloseAllSubmitting()const index = _ary.indexOf(obj)if (index === -1) return_ary.splice(index, 1)
}
/*** @function AllSubmitEnd 所有的提交解决* @param {type: object} obj*/
function _CloseAllSubmitting() {_ary.splice(0, _ary.length)
}
复制代码

应用例子:


async submit () {if (Submitting(submit)) return// ajax 操作await fetch(/* todo */)SubmitEnd()// todo
}
复制代码

转载于:https://juejin.im/post/5cc27106e51d456e71408616

js 防止重复提交方案相关推荐

  1. js节流函数和js防止重复提交的N种方法

    应用情景 经典使用情景:js的一些事件,比如:onresize.scroll.mousemove.mousehover等: 还比如:手抖.手误.服务器没有响应之前的重复点击: 这些都是没有意义的,重复 ...

  2. php js 防止重复提交表单,php如何防止form重复提交

    php如何防止form重复提交 引入cookie机制来解决(推荐学习:PHP编程从入门到精通) 用户提交表单到后端,在 Cookie 中做标记,指定时间内重复提交无效.但是用户禁用 Cookie 这个 ...

  3. 后端怎么防止重复提交?(常用的做法)

    后端怎么防止重复提交?(常用的做法) 客户端的抖动,快速操作,网络通信或者服务器响应慢,造成服务器重复处理.防止重复提交,除了从前端控制,后台也需要控制.因为前端的限制不能解决彻底.接口实现,通常要求 ...

  4. 8种方案解决重复提交问题

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:锦成同学 链接:juejin.im/post/5d31928 ...

  5. 8种方案解决重复提交问题!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 本文来源:juejin.im/post/5d31928c51882 ...

  6. 8 种方案解决重复提交问题!你选择哪一种呀?

    1.什么是幂等 在我们编程中常见幂等 select查询天然幂等 delete删除也是幂等,删除同一个多次效果一样 update直接更新某个值的,幂等 update更新累加操作的,非幂等 insert非 ...

  7. form表单用js提前执行函数若不成功则不提交_面试必会的重复提交 8 种解决方案!...

    重复提交看似是一个小儿科的问题,但却存在好几种变种用法.在面试中回答的好,说不定会有意想不到的收获!现把这 8 种解决方案分享给大家! 1.什么是幂等 在我们编程中常见幂等 select查询天然幂等 ...

  8. 防止form表单重复提交的几种方案

    阅读目录 前言 form重复提交场景 解决方案 一:前端利用JavaScript防止表单重复提交 二:利用Session防止表单重复提交 三:使用重定向也可以解决form表单重复提交问题 参考 前言 ...

  9. js防止表单重复提交

    在表单提交的时候,用户有时候会重复的点击提交按钮,会导致多次提交,产生重复数据.我们应该怎么办了?一般想法是:通过attachEvent在 form的onsubmit事件中写一个方法,每次触发该事件时 ...

最新文章

  1. MySQL集群系列2:通过keepalived实现双主集群读写分离
  2. YUV2RGB c++ python
  3. js:进一步关闭(范围:下一个)
  4. VPGAME 的 Kubernetes 迁移实践
  5. nyoj1307Linux的文件权限对不对
  6. linux虚拟网桥配置nat,使用NAT在Proxmox VE 6上创建专用网桥的方法
  7. python变量持久化_Python 数据持久化:JSON
  8. 【英语学习】【English L06】U01 Breakfast L5 Continental and English
  9. anki 插入表格_Anki+思维导图的两种方法(Anki+表格,Anki+幕布)
  10. Kava Labs已上线Trust Wallet专用桥接器以提供DeFi产品服务
  11. Kalman Filter—Step by step Derivation of Kalman Gain
  12. MySQL常用函数大全(总结篇)
  13. Windows系统内置彩蛋
  14. 解决电信网络Echarts官网打不开的问题
  15. Java编程中常见异常有哪些?
  16. Python绘制圆锥曲线动画
  17. git把一个分支上的某次提交同步到另一个分支上
  18. 计算机组成--虚拟存储器
  19. Tapestry原则
  20. [附源码]计算机毕业设计JAVA领导干部听课评课管理系统

热门文章

  1. 惠普服务器查看主板型号,win10惠普主板型号查看图文教程
  2. 为什么从网页上打印怎们好像被缩放_便捷高效低成本,映美热敏云打印机CTP-180UWE体验...
  3. c语言2维动态数组,如何创建一个动态2维数组?
  4. mysql硬盘备份_原创-在mysql中把里面的数据库备份到自己的硬盘上
  5. linux操作系统_Linux 操作系统内存分布
  6. 计算机考试可以带首饰吗,高考时不许考生戴框架眼镜?“无声考场”有新规,考生别忽视...
  7. mysql高可用架构介绍_MYSQL高可用架构
  8. win10 iot core java_Windows 10 IoT Core开发环境
  9. nuxt页面跳转_还不会Nuxt.js的速进!
  10. echarts中graphic_Echarts实现折线图