提交保存,要做重复请求拦截,避免出现重复保存的问题
**问题:**前端ajax提交数据的时候,当频繁点击的时候,或者两个账号以相同数据创建的时候,会出现问题。
**处理办法:**前端拦截,防止重复提交数据,在上一次请求返回结果之后才允许提交第二次;后端和数据库也同意做拦截判断。
** 1. 前端拦截:**
结合 layer.confirm 可以屏蔽掉重复点击确认按钮产生重复请求的情况。
// 创建征地补差价协议
function createDisparityContract() {if ($('#areaId').val() == null || $('#areaId').val() == '') {layer.msg('请先选择区域');return;}var lock = false;layer.confirm("确认要创建土地补差价协议书吗?", {btn: ['确定', '取消']}, function () {if (!lock) {lock = true;$.ajax({type: 'POST',data: {areaId: $("#areaId").val()},async: false,url: prefix + '/saveDisparityContract',success: function (r) {if (r.code == 0) {reLoad();}layer.alert(r.msg);}});}});}
2. 后端+数据库拦截:
因为会设计协议表,数据表,关系表,而关系表的数据ID字段是唯一的,所以可以给数据ID字段添加唯一索引。后端的的逻辑加上事务管理,这样你无论如何也不可能生成相同的协议书了。
ALTER TABLE `biz_contract_offset` ADD unique(`offset_id`);
@Override
@Transactional
public void insertContractForAll(ContractDO contractDO, Long[] offsetIds) {OffsetDataDO offsetDataDO = offsetDataService.get(offsetIds[0]);contractDO.setAreaId(offsetDataDO.getAreaId());contractDO.setProjectId(offsetDataDO.getProjectId());Long rootAreaId = demolitionAreaService.getRootAreaId(contractDO.getAreaId());contractDO.setRootAreaId(rootAreaId);List<OffsetDataDO> offsetDataList = offsetDataService.getOffsetDataList(offsetIds);double price = this.calContractPrice(offsetDataList);double buildOfficePrice = this.calContractBuildOfficePrice(offsetDataList);contractDO.setPrice(price);contractDO.setBuildOfficePrice(buildOfficePrice);// 设置合同编号、序号this.setContractNo(contractDO, rootAreaId);contractDO.setCreateTime(new Date());this.save(contractDO);contractOffsetService.createContractOffset(contractDO.getId(), offsetIds);
}
.
感谢您的阅读,欢迎参观我的个人网站:小嗨词典【 https://www.happydict.cn】
.
相关文章:
提交保存,要做重复请求拦截,避免出现重复保存的问题
**问题:**前端ajax提交数据的时候,当频繁点击的时候,或者两个账号以相同数据创建的时候,会出现问题。 **处理办法:**前端拦截,防止重复提交数据,在上一次请求返回结果之后才允许提交第二次&…...
华为 HCIP-Datacom H12-821 题库 (3)
有需要题库的可以看主页置顶 1.运行 OSPF 协议的路由器在交互 DD 报文时,会使用以下哪一个参数选举主从关系? A、接口的 IP 地址 B、接口的 DR 优先级 C、Area ID D、Router ID 答案:D 解析: Router-ID 大的为主&a…...
spring-boot 事件
事件触发时机常用监听器描述ApplicationStartingEvent应用启动时LoggingApplicationListener:决定加载哪个日志系统ApplicationEnvironmentPreparedEvent创建Environment之后BootstrapApplicationListener:加载spring-cloud bootstrap配置文件࿱…...
合碳智能 × Milvus:探索化学合成新境界——逆合成路线设计
合碳智能(C12.ai)成立于2022年,致力于运用AI和具身智能技术,为药物研发实验室提供新一代智能化解决方案,推动实验室从自动化迈向智能化,突破传统实验模式与人员的依赖,解决效率和成本的瓶颈&…...
二分查找 | 二分模板 | 二分题目解析
1.二分查找 二分查找的一个前提就是要保证数组是有序的(不准确)!利用二段性! 1.朴素二分模板 朴素二分法的查找中间的值和目标值比较 while(left < right) // 注意是要: < {int mid left (right -left) / 2;…...
uni-app应用更新(Android端)
关于app更新,uni-app官方推荐的是 uni-upgrade-center,看了下比较繁琐,因此这里自己实现检查更新并下载安装的逻辑。 1.界面效果 界面中的弹框和 进度条采用了uView 提供的组件 2.检查更新并下载安装 一、版本信息配置在服务端,…...
JavaEE(2):前后端项目之间的交互
现在,在网页中通过超链接,表单就可以向后端发送请求,后端也可以正常响应内容。 以前通过表单访问后端的请求方式称为同步请求 同步请求 当网页与后端交互时,前端不能再进行其他操作 服务器端响应回来的内容,会把整个浏…...
(已开源-CVPR 2024)YOLO-World: Real-Time Open-Vocabulary Object Detection
169期《YOLO-World Real-Time Open-Vocabulary Object Detection》 You Only Look Once (YOLO) 系列检测模型是目前最常用的检测模型之一。然而,它们通常是在预先定义好的目标类别上进行训练,很大程度上限制了它们在开放场景中的可用性。为了解决这一限制…...
Spring6梳理4——SpringIoC容器
以上笔记来源: 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 4.1 前言 4.2 IoC容器 4.2.1 控制反转(IoC) 4.2.2 依赖注入 4.2.3 IoC容器在Spri…...
SpringBoot2:请求处理原理分析-FORM表单请求接口
一、RESTFUL简介 Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改…...
Monkey日志ANR、CRASH、空指针异常及其他异常数据分析
引言 在Android开发过程中,monkey测试是一种常用的随机测试手段,用于模拟用户的各种操作来发现应用中的稳定性问题。通过monkey测试生成的日志文件包含了丰富的信息,包括应用程序崩溃(Crash)、无响应(ANR&…...
Vue 3结合Element Plus中,实现一个级联选择器(Cascader)来展示省市区
在Vue 3结合Element Plus中,实现一个级联选择器(Cascader)来展示省市区(甚至到更细分的级别,如街道、小区等)的联动选择是一个常见的需求。Element Plus的Cascader组件非常适合这样的场景,因为它…...
使用卫星仿真软件STK的一些应用和思考(星地链路、星间链路)
目录 任务描述利用STK建模星地协同系统3个GEO高轨卫星240/20/1 Walker-Star Constellation 低轨卫星星座地面站或者地面设备 链路建模与数据提取处理星地链路星间链路数据读取的几种方法最麻烦的方法使用Matlab与STK互联接口使用大规模使用Chain 总结 任务描述 在一个星地协同…...
pytorch对不同的可调参数,分配不同的学习率
在 PyTorch 中,你可以通过为优化器传递不同的学习率来针对不同的可调参数分配不同的学习率。这通常通过向优化器传递一个字典列表来实现,其中每个字典指定特定参数组的学习率。下面是一个示例代码,展示了如何实现这一点: import …...
零基础学习Python(八)—— time模块、request模块、数据分析和自动化办公相关模块、jieba模块、文件操作和os相关模块的简单介绍
1. time模块 time():获取当前时间戳,是一个数字 localtime():返回一个time.struct_time对象,里面有年月日时分秒,还有星期几(0表示星期一)和今年的第几天 import timeprint(time.time()) pri…...
快速回顾-HTML5
HTML5-常用的标签:https://blog.csdn.net/TKOP_/article/details/111395865 <!-- HTML5:声明文档类型的标签 --> <!DOCTYPE html><!-- 用于声明网页的主要语言为简体中文 --> <!-- 帮助搜索引擎、浏览器等理解网页的语言内容,以便…...
视频技术未来展望:EasyCVR如何引领汇聚融合平台新趋势
随着科技的飞速发展,视频技术已成为现代社会不可或缺的一部分,广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。本文将探讨视频技术的未来发展趋势,并深入分析TSINGSEE青犀EasyCVR视频汇聚融合平台的技术优势,展现其…...
7个流行的开源数据治理工具
数字化时代,数据是已经成为最宝贵的资产之一。数据支撑着我们的政府、企业以及各类组织的所有流程,并为决策以及智能化服务提供支撑。大数据有大用途,但是也可能隐藏着巨大的风险,特别是如果我们对数据的情况不是很了解的时候&…...
js | XMLHttpRequest
是什么? 和serve交互数据的对象;能够达到页面部分刷新的效果,也就是获取数据之后,不会使得整个页面都刷新;虽然名字是XML,但不限于XML数据。 怎么用? function reqListener() {console.log(thi…...
2024国赛数学建模A题思路模型代码
2024国赛数学建模思路资料,思路获取见文末名片 数学建模感想 纪念逝去的大学数学建模:两次校赛,两次国赛,两次美赛,一次电工杯。从大一下学期组队到现在,大三下学期,时间飞逝,我的…...
开源大模型研报工具:Pixel Epic与Llama-Research在专业度上的横向评测
开源大模型研报工具:Pixel Epic与Llama-Research在专业度上的横向评测 1. 评测背景与工具介绍 在金融分析、市场研究和学术写作领域,高质量的研究报告生成工具正变得越来越重要。本次评测将对比两款基于开源大模型的研报生成工具:Pixel Epi…...
智能电脑排班系统V2024|全自动、高自由度、零门槛排班工具
温馨提示:文末有联系方式产品定位:新一代智能电脑排班系统 扩展版智能排班软件(2024最新稳定版)是一款专为中小团队设计的桌面级自动化排班解决方案。 它融合AI逻辑引擎与人性化交互,兼顾智能调度与人工干预自由度&…...
OpenClaw技能开发:为Qwen2.5-VL-7B定制图片转Excel技能
OpenClaw技能开发:为Qwen2.5-VL-7B定制图片转Excel技能 1. 为什么需要这个技能? 上周处理财务报销时,我遇到了一个典型痛点:同事发来的是一张手工填写的费用明细照片,我需要手动将表格数据录入Excel。这种重复性工作…...
PyCharm 2026.1 高效配置指南:从零打造极致顺滑的 Python 开发环境
PyCharm 2026.1 高效配置指南:从零打造极致顺滑的 Python 开发环境 网盘下载 0. 前言 在 2026 年,PyCharm 2026.1 依然是 Python 开发领域的“天花板”。无论是对 Python 3.13 新特性的完美支持,还是深度集成的本地 AI 代码预测引擎&#…...
安装对中不到位,丝杆升降机越用越费!5大严重后果必看
在设备安装现场,经常能看到这样的场景:工人用卷尺大概量一下电机座和升降机输入轴的距离,然后用锤子把联轴器敲进去,螺栓拧紧就完事了。他们不知道,这种“差不多”的对中操作,正在为丝杆升降机埋下致命隐患…...
一文吃透 TDengine:对比主流时序库、核心语法与避坑指南
前言在物联网、工业监控、车联网、能源等场景,时序数据(时间戳 指标 标签)的规模动辄亿级测点、万亿行数据,传统数据库与通用时序库往往陷入 “写不动、查不动、存不起” 的困境。TDengine(涛思数据库)凭…...
OpenClaw学习助手:百川2-13B量化模型自动整理课程笔记
OpenClaw学习助手:百川2-13B量化模型自动整理课程笔记 1. 为什么需要自动化笔记整理 作为一名经常需要消化大量课程资料的技术从业者,我长期被两个问题困扰:一是阅读PDF/PPT时手动摘录效率低下,二是分散的笔记难以形成知识体系。…...
为什么你的file_get_contents总崩溃?揭秘PHP 8.3+大文件I/O底层机制与3种替代架构
第一章:为什么你的file_get_contents总崩溃?揭秘PHP 8.3大文件I/O底层机制与3种替代架构当处理超过100MB的文件时,file_get_contents() 在 PHP 8.3 中频繁触发内存溢出(Fatal error: Allowed memory size exhausted)&a…...
高速数字电路中的信号抖动与眼图优化
1. 信号抖动与眼图基础解析在高速数字电路设计中,信号完整性问题往往表现为"信号抖动"和"眼图劣化"这两个直观现象。信号抖动(Jitter)本质上是指数字信号边沿相对于理想时序位置的偏差,这种时间上的不确定性会…...
如何高效定制暗黑破坏神2角色?全能d2s存档编辑器使用指南
如何高效定制暗黑破坏神2角色?全能d2s存档编辑器使用指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 在暗黑破坏神2的冒险旅程中,你是否曾因属性点分配失误、稀有装备获取困难或存档损坏而感到沮丧&a…...
