【业务场景】用户连点
处理用户连点
1.时间戳处理
思路:通过检查当前时间和上一次触发事件的时间之间的间隔,判断是否允许继续执行。
代码如下:
// clickThrottle.js
/* 防止重复点击 */
let clickTimer = 0function clickThrottle(interval = 3000) {let now = new Date().getTime(); // 获取当前时间的时间戳let timer = clickTimer; // 记录触发事件的事件戳if (now - timer < interval) {// 如果当前时间 - 触发事件时的事件 < interVal,那么不符合条件,直接return false,// 不让当前事件继续执行下去return false;} else { // 反之,记录符合条件触发了事件的时间戳,并 return true,使事件继续往下执行clickTimer = now;return true;}
}export default clickThrottle
如何使用?
首先引入上述js文件,如何将其应用到触发事件的响应函数中即可:
import clickThrottle from '@/utils/clickThrottle.js'
......
handleEvent() {// 首先进行时间戳判断,若不符合条件则直接退出处理if(!clickThrottle(5000)) return// 后续进行事件的处理...
}
2.节流
注意处理用户连点时,并不能单纯使用基础的节流函数,因为这样会导致用户的操作存在延迟,影响用户的使用体验,最好的方法是使用立即执行的节流函数。
参考:防抖与节流
使用节流函数处理用户连点存在一定的问题:由于点击后需要请求后端接口提交信息,而当用户网络较差时,网络请求的响应时间较长,当该时间超过了节流所控制的时间长度时,节流就失效了!这一问题实际上也是较难解决的,因为每一个用户的网络情况是不同的,并不好统一一个节流的时间长度。
3.按钮加载状态
为按钮添加加载状态,实际上是在所有能够实现该需求的方法中,用户体验最好的方法。
其实现方法是:
- 点击按钮时,待通过表单校验后,将按钮置为加载状态,禁止用户点击;
- 请求后端接口提交数据,并等待接口响应;
- 在网络请求Promise的
then方法中,进行提交成功的处理,在catch方法中,进行提交失败的处理。 - 最后,在Promise的
finally方法中,重置按钮状态为正常状态,可进行点击;
这样最终的效果是,当用户点击按钮后,按钮呈现加载状态,无法继续点击,等待后端处理完毕后,无论此次提交成功还是失败,按钮都可以再次点击(当然一般提交成功后会跳转离开)。
相关文章:
【业务场景】用户连点
处理用户连点 1.时间戳处理 思路:通过检查当前时间和上一次触发事件的时间之间的间隔,判断是否允许继续执行。 代码如下: // clickThrottle.js /* 防止重复点击 */ let clickTimer 0function clickThrottle(interval 3000) {let now n…...
zabbix企业微信告警
目前,企业微信使用要设置可信域名 华为云搜索云函数 创建函数 选择http函数,随便输入函数名字 回到函数列表,选择刚创建的函数,创建触发器,安全模式选择none 点击右上角管理 选刚创建的api,右边操作点…...
(高频面试1)Redis缓存穿透、缓存击穿、缓存雪崩
目录 一:缓存数据 1.1 应用场景 1.2:缓存数据出现的问题 1.2.1 缓存穿透 1.2.2 解决办法 1.2.3 缓存击穿 1.2.4 解决办法 1.2.5 缓存雪崩 1.2.6 解决办法 一:缓存数据 1.1 应用场景 数据库查询结果缓存是一种常见的缓存应用场景&a…...
c++推箱子小游戏
上代码: #include <stdio.h> #include <stdlib.h> #include <conio.h>int map[2][7][8] {//0:空的 1:■ :墙//3:☆ 4:★ //目的地和箱子//5:※ //人//7:⊙ //目的(3)和箱子(4)在一起//8:※ //人(5…...
SpringMVC:从入门到精通
一、SpringMVC是什么 SpringMVC是Spring提供的一个强大而灵活的web框架,借助于注解,Spring MVC提供了几乎是POJO的开发模式【POJO是指简单Java对象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object࿰…...
jmeter 数据库连接配置 JDBC Connection Configuration
jmeter 从数据库获取变量信息 官方文档参考: [jmeter安装路径]/printable_docs/usermanual/component_reference.html#JDBC_Connection_Configuration 引入数据库连接: 将MySQLjar包存放至jemter指定目录(/apache-jmeter-3.3/lib)…...
TVC广告片制作成本多少
电视是广告传播的主要媒介之一,具有广泛的受众群体和较高的覆盖率。通过在电视上播放广告片,企业可以将产品或者服务的信息传达给大量潜在客户,提高知名度和曝光度。接下来由深圳TVC广告片制作公司老友记小编从以下几个方面浅析制作一条TVC广…...
【Express.js】代码规范
代码规范 编程规范,对于一个优秀的项目是不可或缺的,有了良好的代码规范,有益于项目的维护与拓展。 命名规范 命名的第一要义是明了,要让阅读者看到命名就能大概猜测出其意义或用处。 以用户身份(userRoleÿ…...
Vue2+Vue3基础入门到实战项目(前接六 副线一)—— 面经 项目
day1 接口文档地址:https://www.apifox.cn/apidoc/project-934563/api-20384515 一、项目功能演示 1.目标 启动准备好的代码,演示移动端面经内容,明确功能模块 2.项目收获 二、项目创建目录初始化 vue-cli 建项目 1.安装脚手架 (已安装…...
QT tcpserver
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 服务端有QTcpServer库,封装了监听操作server new QTcpServer();// 直接监听,内部根…...
Android adb shell svc 知识详解
adb shell svc 详解 文章目录 adb shell svc 详解一、svc 常用命令: 二、svc 命令和使用示例:查看系统是否安装了svc1、svc2、svc help3、svc power svc wifi has been migrated to WifiShellCommand,simply perform translation to cmd wifi set-wifi-e…...
Debian12系统下LAMP环境中Nubuilder4.5的安装
一、环境搭建 按照官方的说法,Apache2和Nginx都可以的,实际上,你最好直接按照 Mariadb\Apache2\Php8.2 这个顺序,搭建LAMP环境较好。不然各种调试,还不一定能够成功。 相关搭建方法,属于一般操作…...
百度超级链BaaS服务平台调研
目录 一、菜单功能1.1、在线版1.2、服务版 二、其他说明2.1、服务平台的部署方式2.2、混合部署 百度超级链XuperChain管理平台文档地址:https://xuper.baidu.com/n/doc#/c8737c7b/1_0_0/c8737c7b 一、菜单功能 1.1、在线版 在线版功能稍多。 菜单子菜单/功能点子…...
计算机网络之TCP/IP协议第二篇:OSI参考模型详解
文章目录 写给自己的话 一:协议分层与OSI参考模型 二:通过对话理解分层 三:OSI参考模型...
Linux内核分析与应用2-内存寻址
本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好,推荐观看 留此记录,蜻蜓点水,可作抛砖引玉 2.1 内存寻址 数据连续存储和选择读取思想,是目前我们使用的几乎所有机器运行背后的灵魂 计算机体系结构中的核心问题之一,就是如…...
苍穹外卖 day12 Echats 营业台数据可视化整合
苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现:工作台、数据导出 工作台效果图: 数据导出效果图: 在数据统计页面点击数据导出:生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系…...
代码随想录算法训练营day45|70. 爬楼梯(进阶版)|322. 零钱兑换|279.完全平方数
70. 爬楼梯(进阶版) 一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢? 1阶,2阶,… m阶就是物品,楼顶就是背包。 每一阶可以重复使用&#…...
数据结构和算法(3):列表
列表是一种线性数据结构,它允许在其中存储多个元素,并且可以动态地添加或删除元素。 循秩访问 可通过重载下标操作符,实现寻秩访问 template <typename T> // assert: 0 < r < size T List<T>::operator[](Rank r) cons…...
使用playright自动下载vscode已安装插件
import os import re import subprocess import traceback from playwright.sync_api import Playwright, sync_playwright, expect# 执行CMD命令 cmd_command "code --list-extensions" # 获取已安装扩展列表 process subprocess.Popen(cmd_command, stdoutsubpr…...
单片机语言实例:2、点亮数码管的多种方法
一、共阳数码管静态显示 程序实例1: #include<reg52.h> //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义void main (void) {P10xc0; //二进制 为 1100 0000 参考数码管排列,//可以得出0对应的段点…...
Phi-3 Forest Laboratory 入门到精通:GitHub开源项目协作全流程指南
Phi-3 Forest Laboratory 入门到精通:GitHub开源项目协作全流程指南 你是不是也遇到过这种情况:自己写的代码跑得好好的,一跟别人合作就乱套了。版本冲突、代码覆盖、提交信息写得像天书……明明是个简单的功能开发,最后花在沟通…...
零基础玩转Qwen2.5-7B:5分钟本地部署,小白也能跑通AI对话
零基础玩转Qwen2.5-7B:5分钟本地部署,小白也能跑通AI对话 1. 前言:为什么选择Qwen2.5-7B AI大模型正在改变我们与技术互动的方式,但对于普通用户来说,部署和使用这些模型往往充满挑战。Qwen2.5-7B作为阿里开源的最新…...
“超节点”的纷争开始了
3月26日,在“2026中关村论坛年会”上,中科曙光发布世界首个无线缆箱式超节点scaleX40。其单节点集成40张GPU,总算力超过28PFLOPS(FP8精度),能够满足万亿参数大模型的训练与推理需求。产品采用标准19英寸箱式…...
嵌入式系统开发中的关键技术术语解析
嵌入式系统开发中的56个关键技术术语解析1. 数据转换基础概念1.1 采样与保持特性采集时间(Tacq)是从释放保持状态到采样电容电压稳定至新输入值的1 LSB范围之内所需的时间。在采样-保持电路中,这个参数直接影响系统的动态性能。孔径延迟(tAD)描述从时钟信号的采样沿…...
YOLOv8自定义检测头踩坑记:手把手教你修复‘NotImplementedError: new_detect task‘错误
YOLOv8自定义检测头实战:从报错到修复的深度解析 当你在YOLOv8框架中尝试添加一个名为new_detect的自定义检测头时,突然遇到NotImplementedError: new_detect task错误,这可能会让你感到困惑。本文将带你深入理解YOLOv8的任务调度机制&#x…...
保姆级教程:用Docker Compose一键部署带汉化和HTTPS的n8n,并配置反向代理(Nginx)
企业级n8n自动化平台全栈部署实战:从容器编排到安全加固 在数字化转型浪潮中,自动化工作流平台已成为企业降本增效的核心基础设施。n8n作为GitHub上增长最快的开源自动化工具之一,凭借其可视化编排能力和400节点生态,正在重塑企业…...
SAP IDoc入站出站处理全流程拆解:从WE19测试到IDOC_INPUT_函数调试
SAP IDoc接口开发实战:从零构建到生产环境调试全指南 在SAP系统集成领域,IDoc(Intermediate Document)作为企业级数据交换的标准载体,其重要性不言而喻明。不同于简单的文件传输,一个健壮的IDoc接口需要开发…...
避坑指南:Ollama部署DeepSeek-R1时,如何安全地开放API端口给内网其他服务调用?
深度解析:Ollama部署DeepSeek-R1时内网API安全开放实战 当你在一台Linux服务器上成功部署了Ollama和DeepSeek-R1模型后,下一步自然是想让内网中的其他服务也能调用这个强大的AI能力。但直接开放端口就像把家门钥匙插在锁上——方便但危险。本文将带你深入…...
将Autoresearch转化为通用技能
我是一名技术作家。我每天在文档仓库、Markdown 文件、API 参考、风格指南和 SEO 审计中度过。我不训练语言模型。我不写 CUDA 内核。但当 Andrej Karpathy 发布了他的 autoresearch 时,我无法停止思考它。 这个想法太简单了,事后看来似乎很明显&#x…...
终极Chrome全页截图指南:一键保存完整网页内容的高效方案
终极Chrome全页截图指南:一键保存完整网页内容的高效方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-ex…...
