问题描述

用户短时间快速点击,向后台发起多次请求

项目中有如图所示弹窗,用户编辑完成之后,快速点击确定,进行保存.
列表中会展示刚才保存的数据,可以看到出现了重复的数据.虽然后端已经加了参数名不能重复的校验,但是仍然可以成功保存.此时就需要前端进行节流限制

解决方案:

采用节流函数 对快速点击的操作进行限制:

先在项目中公共的js中编写节流函数 throttle 方便后续多个地方使用

//节流
export function throttle(fn, time) {let timer = nulltime = time || 1000return function (...args) {if (timer) {return}const _this = thistimer = setTimeout(() => {timer = null}, time)fn.apply(_this, args)}
}

在需要的页面中引入节流函数,对需要进行节流的操作进行包裹.
throttle函数的两个参数 第一个是要执行的函数 第二个为节流时间.
这里有个坑,因为是在vue项目,所以经常需要this,但是网上好多节流函数的第一个参数都是用箭头函数写,所以导致内部指向并不是vue实例,如果你的执行函数中,需要用到this,请不要使用箭头函数,按照我这样写,this指向为vue实例,

import { throttle } from '@/assets/js/public.js';method:{//保存自定义参数(这个就是点击确定触发的操作)saveCustomerParameter: throttle(function () {console.log('这是你要进行的操作')}, 800),
}

完成上述操作后,再回去测试一下,看看是不是节流时间内,多次的操作只执行了一次.

vue项目中使用节流throttle相关推荐

  1. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  2. 如何在Vue项目中使用vw实现移动端适配(转)

    有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越 ...

  3. 实战:vue项目中导入swiper插件

    版本选择 swiper是个常用的插件,现在已经迭代到了第四代:swiper4. 常用的版本是swiper3和swiper4,我选择的是swiper3. 安装 安装swiper3的最新版本3.4.2: ...

  4. vue ajax highcharts,在vue项目中引入highcharts图表的方法(详解)

    npm进行highchars的导入,导入完成后就可以进行highchars的可视化组件开发了 npm install highcharts --save 1.components目录下新建一个char ...

  5. VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题

    VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题 参考文章: (1)VUE项目中使用this.$forceUpdate();解决 ...

  6. 在vue项目中:统一封装 Axios 接口与异常处理

    在vue项目中:统一封装 Axios 接口与异常处理 参考文章: (1)在vue项目中:统一封装 Axios 接口与异常处理 (2)https://www.cnblogs.com/itgezhu/p/ ...

  7. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: Th ...

  8. Typescript在Vue项目中的使用

    最近尝试了一下Typescript在Vue项目中的使用,中间遇到了一些问题,把遇到的问题记录一下,以防被忘. 如何让Typescript识别Vue.JSON文件 因为Typescript默认不能识别. ...

  9. vue项目中使用echarts实现词云

    0.先上效果图 1.安装插件 -- vue项目中 npm install echartsnpm install echarts-wordcloud 2.vue页面中引入组件 <word-clou ...

最新文章

  1. linux下tomcat服务的相关命令
  2. Android开发精要1--Android系统架构
  3. 在参数上使用@Param(“paramName”)注解”解决了传多个参数的问题
  4. 【算法】一个简单的主成分分析(PCA)原理
  5. 写一个高性能的敏感词检测组件
  6. ArcGIS实验教程——实验十七:缓冲区分析(Buffer Analysis)
  7. (原)举例说明C#自定义配置文件app.config及如何读取配置内容(在app.config加入自定义的XML节点)?...
  8. js中将时间字符串转换为时间戳
  9. 华硕z170a如何开启m2_给Z170A 加个M.2 SSD,速度有点意思
  10. codevs 1415 比那名居天子
  11. 创建型模式学习总结——设计模式学习笔记
  12. linux下的screen工具配置(针对 string escape)
  13. 觉得做人累了就看看这些!不是社会错了,是你错了!写的超好!
  14. 滚动时RecyclerView对ViewHolder的缓存与复用
  15. ctfshow - PNG隐写入门赛
  16. 【Robo 3T】MongoDB可视化工具-- Robo 3T使用教程
  17. 【P3369 普通平衡树】 Splay
  18. 用matlab抽奖,现在社会上销售彩票的很多。一家三口在抽奖时,常常喜欢让孩子来抽,请问这是遵循了什么决策原则(   )...
  19. 防雷知识:什么是雷电浪涌
  20. 集度首台验证样车下线,智驾软件已跑通红绿灯识别等功能

热门文章

  1. 属性操作与元素节点操作和onscroll
  2. [Halcon测量] 两线直线的角度测量
  3. IPSEC VPN详解
  4. 利用word的xml格式,使用POI在图片位置插入文字
  5. CalBioreagents 艾美捷重组β2-糖蛋白1说明书
  6. Jmeter压测工具的使用
  7. [DP] [贪心] [Vijos P1417] 魔法塔防 (mtower)
  8. LabVIEW测试面板丢失,修复或重置NI MAX
  9. 用Echarts2画饼图配置 itemStyle
  10. 小工具软件,有点相似一个木函