当前位置: 首页 > news >正文

“暂存”校验逻辑探讨

1、背景

在业务中可能会遇到这种场景,前端页面元素多且复杂,一次性填完提交耗时很长,中间中断面临着丢失数据的风险。针对这个问题,“暂存”应运而生。

那“暂存”的时候,是否需要对数据校验,如何进行校验,就是本文探讨的内容。

2、前后端职责简介

探讨之前,先简单聊聊前后端的职责。

2.1 前端

负责数据的输入,并对输入的内容进行校验,保证数据正确性、完整性。

常见的校验逻辑有以下几种:

  • 必填项校验
  • 数据类型校验:金额、数字、日期
  • 数据格式校验:金额格式、日期格式、邮件格式、身份证格式
  • 长度校验

2.2 后端

负责数据的保存,保证数据持久化。

数据库保存数据,存在的限制:

  • 数据类型:数字、日期、字符串
  • 数据长度

3、校验逻辑探讨

3.1 业务合理性

站在业务角度看,暂存是要把已填的数据先存起来,其实没有任何校验逻辑也没问题。

没有任何校验,就意味着数据可以随便输入,也就意味着会有错误数据保存:比如金额输入的是汉字等。

所以暂存是否允许输入错误数据呢?这是一个核心问题。

方案        优点缺点
不做任何校验随便存有错误数据
不做必填项校验,其它校验需要做:填就填对

1、数据正确

2、填多少保存多少

要填就得填正确,略有限制

3.2 技术实现方案

技术方案        优点缺点
不做任何校验1、暂存时直接去掉校验逻辑,前端简答

1、后端数据库有类型限制,想达到这个效果有2种方式:

  • 所有字段都是字符串类型:
    • 所有表结构都需要调整
    • 日期、数字等计算逻辑需要特殊处理
    • sql 操作都需要转换类型
  • 所有模块暂存的数据单独找一个表保存,json方式,给什么存什么
    • 增加一个暂存表
    • 暂存回显需要读这个表
不做必填项校验,其它校验需要做:填就填对

1、后端数据可以正常保存在数据库

1、前端暂存时需要排除必填项校验

3.3 总结

系统的核心是流程及数据,站在这个角度看,数据是需要保证正确性的。

综合考虑业务需求、实现难度,我认为暂存应该只去掉必填校验,其它校验保留。

相关文章:

“暂存”校验逻辑探讨

1、背景 在业务中可能会遇到这种场景,前端页面元素多且复杂,一次性填完提交耗时很长,中间中断面临着丢失数据的风险。针对这个问题,“暂存”应运而生。 那“暂存”的时候,是否需要对数据校验,如何进行校验…...

探究element-ui 2.15.8中<el-input>的keydown事件无效问题

一、问题描述 今天看到一个问题&#xff0c;在用Vue2element-ui 2.15.8开发时&#xff0c;使用input组件绑定keydown事件没有任何效果。 <template><div id"app"><el-input v-model"content" placeholder"请输入" keydown&quo…...

Unity 代码控制Text自适应文本高度

在使用代码给Text赋值时&#xff0c;且文本有多段&#xff0c;并需要根据实际文本高度适配Text组件的高度时&#xff0c;可以使用以下方法&#xff1a; //Text文本 public TextMeshProUGUI text;void Start() {//代码赋值文本text.text "好!\n很好!\n非常好!";//获…...

TiDB 7.1 多租户在中泰证券中的应用

本文详细介绍了中泰证券在系统国产化改造项目中采用 TiDB 多租户技术的实施过程。文章分析了中泰证券数据库系统现状以及引入 TiDB 资源管控技术的必要性&#xff0c;探讨了 TiDB 多租户的关键特性&#xff0c;并阐述了在实际应用中的具体操作步骤。通过该技术的应用&#xff0…...

嵌入式-stm32-SR04超声波测距介绍及实战

一&#xff1a;超声波传感器介绍 1.1、SR04超声波测距硬件模块 1.2、SR04的四个IO口 vcc:提供电源5V gnd:接地 Trig:是**发送**声波信号的触发器 Echo:是**接收**回波信号的引脚 当TRIG信号被触发时&#xff0c;传感器会发送一定频率的声波信号&#xff0c;该信号被反射后&am…...

智能优化算法应用:基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于白鲸算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白鲸算法4.实验参数设定5.算法结果6.参考文献7.MA…...

mac m1芯片 pytorch安装及gpu性能测试

pytorch 使用mac的m1芯片进行模型训练。 #小结&#xff1a;在数据量小和模型参数少&#xff0c;batch_size小时&#xff0c;cpu训练更快&#xff08;原因&#xff1a;每次训练时数据需要放入GPU中&#xff0c;由于batch_size小。数据放入gpu比模型计算时间还长&#xff09; 在…...

go 使用 - sync.WaitGroup

使用 - sync.WaitGroup 简介使用注意点 简介 waitgroup 是等待一组并发操作完成得方法。Goroutines对Go来说是独一无二的&#xff08;尽管其他一些语言有类似的并发原语&#xff09;。它们不是操作系统线程&#xff0c;它们不完全是绿色的线程(由语言运行时管理的线程)&#x…...

Java Web Day07-08_Layui

1. Layui概念介绍 layui&#xff08;谐音&#xff1a;类 UI) 是一套开源的 Web UI 解决方案&#xff0c;采用自身经典的模块化规范&#xff0c;并遵循原生 HTML/CSS/JS 的开发方式&#xff0c;极易上手&#xff0c;拿来即用。其风格简约轻盈&#xff0c;而组件优雅丰盈&#x…...

阿里云华北3(张家口)暂时无法办理经营性ICP许可证

阿里云服务器的华北 3&#xff08;张家口&#xff09;地域暂时无法办理经营性ICP许可证&#xff0c;如有经营性ICP业务请勿选择此地域。如果需要办理经营性ICP业务的用户&#xff0c;不需要选择华北3&#xff08;张家口&#xff09;地域&#xff0c;可以选择华北2&#xff08;北…...

八种常见顺序存储的算法

目录 1、线性枚举 1&#xff09;问题描述 2&#xff09;动图演示 3&#xff09;示例说明 4&#xff09;算法描述 5&#xff09;源码详解 2、前缀和差分 1&#xff09;问题描述 2&#xff09;动图演示 3&#xff09;样例分析 4&#xff09;算法描述 5&#xff09;源码…...

Leetcod面试经典150题刷题记录 —— 栈篇

Leetcod面试经典150题刷题记录 —— 栈篇 1. 有效的括号2. 简化路径3. 最小栈4. 逆波兰表达式求值5. 基本计算器 1. 有效的括号 题目链接&#xff1a;有效的括号 - leetcode 题目描述&#xff1a; 给定一个只包括 ( &#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&…...

【Qt-QThread-QQueue】

Qt编程指南 ■ QThread■ 示例■ QQueue■■■ QThread ■ 示例 #include <QThread> class myThread : public QThread {Q_OBJECT signals...

电子握力器改造

toy_hand_game 介绍 消耗体力玩具&#xff0c;使用握力器(Grip Strengthener)控制舵机旋转。 开始设想是控制丝杆电机滑动&#xff0c;两套设备就可以控制两个丝杆电机进行“模拟拔河”&#xff0c;后续发现硬件设计错误&#xff0c;ULN2003不能控制两相四线电机&#xff0c;…...

3D展2D数学原理

今年早些时候&#xff0c;我为 MAKE 杂志写了一篇教程&#xff0c;介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理&#xff0c;并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub&#xff0c;但我在这里编写了对使这一…...

MacOS+Homebrew+iTerm2+oh my zsh+powerlevel10k美化教程

MacOS终端 你是否已厌倦了MacOS终端的大黑屏&#xff1f; 你是否对这种美观的终端抱有兴趣&#xff1f; 那么&#xff0c;接下来我将会教你用最简单的方式来搭建一套自己的终端。 Homebrew的安装 官网地址&#xff1a;Homebrew — The Missing Package Manager for macOS (o…...

jenkins解决工具找不到的问题

--------------------------插件选择版本最好能跟服务器对上...

Android : 画布的使用 简单应用

示例图&#xff1a; MyView.java&#xff1a; package com.example.demo;import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.Vi…...

紫光展锐5G扬帆出海 | 东南亚成为5G新热土

东南亚是一块充满活力和潜力的市场&#xff0c;这里人口基数大、年轻消费群体占比高&#xff0c;电子市场在过去几年显著增长。 增速“狂飙”的东南亚手游 近年来&#xff0c;东南亚手游下载量逐年增长&#xff0c;2023 年第一季度下载量突破 21 亿次&#xff0c;贡献了全球近…...

STM32 学习(一)新建工程

本课程使用的stm32型号 引脚定义&#xff0c;有FT能接5v&#xff0c;没有FT能接3.3v 启动配置 第二种启动模式中&#xff0c;系统存储器中存放了一部分Bootloader程序&#xff0c;该程序可以接收串口的数据&#xff0c;然后刷新到主闪存中&#xff0c;这样就可以使用串口下载程…...

Perplexity实时新闻查询效率翻倍:从API调用到结果过滤的7个隐藏技巧

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity实时新闻查询效率翻倍&#xff1a;从API调用到结果过滤的7个隐藏技巧 Perplexity 的实时新闻 API&#xff08;如 /search/news 端点&#xff09;在默认配置下常因冗余字段、未压缩响应和同步阻塞而…...

硬件工程师转型软件设计:十大核心技巧与思维转换实战指南

1. 项目概述&#xff1a;一次思维模式的“跨界”升级作为一名在硬件领域摸爬滚打了十多年的老兵&#xff0c;我深知从示波器、烙铁和PCB布线软件转向代码编辑器、版本控制和软件架构图时&#xff0c;那种既兴奋又迷茫的感觉。硬件工程师转软件设计&#xff0c;这绝不仅仅是换个…...

VBS转VBE不只是加密:聊聊Scripting.Encoder的‘黑历史’与现代替代方案

VBS转VBE&#xff1a;从Scripting.Encoder的兴衰到现代脚本保护方案 在Windows脚本技术的发展长河中&#xff0c;VBScript&#xff08;VBS&#xff09;曾经是自动化任务和系统管理的重要工具。而与之相伴的VBE&#xff08;VBScript Encoded&#xff09;格式&#xff0c;则承载着…...

LaTeX documentclass命令深度解析:从基础语法到高级定制

1. LaTeX documentclass命令入门指南 第一次接触LaTeX时&#xff0c;我盯着那个神秘的\documentclass命令发呆了半小时。这个看似简单的命令&#xff0c;实际上掌控着整个文档的"基因"。就像盖房子前要确定是建公寓楼还是独栋别墅&#xff0c;documentclass决定了文档…...

免费扩展Windows虚拟显示器:5分钟打造高效多屏工作空间

免费扩展Windows虚拟显示器&#xff1a;5分钟打造高效多屏工作空间 【免费下载链接】virtual-display-rs A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10. Works with VR, obs, streaming software, etc 项目地址: https://gitco…...

RKNN Model Zoo实战:MobileSAM图像分割在瑞芯微平台的完整部署指南

RKNN Model Zoo实战&#xff1a;MobileSAM图像分割在瑞芯微平台的完整部署指南 【免费下载链接】rknn_model_zoo 项目地址: https://gitcode.com/gh_mirrors/rk/rknn_model_zoo 在边缘计算和嵌入式AI应用场景中&#xff0c;图像分割技术正成为智能监控、工业质检和AR/V…...

鲲鹏面对Agentic沙箱的思考与能力布局

Agent在今年迎来爆发式增长&#xff0c;传统云原生架构在Agent沙箱场景下面临启动慢、弹性差、资源冗余、隔离不足等五大痛点。鲲鹏沙箱以快照快启、共享Rootfs、超节点共享内存三大核心技术破局——将沙箱启动从分钟级压缩至毫秒级&#xff0c;通过写时复制&#xff08;CoW&am…...

基于HPM5E00的EtherCAT从站开发板全流程实战:从硬件设计到软件配置

1. 项目概述&#xff1a;为什么我们要自己动手做一块EtherCAT开发板&#xff1f;如果你是一名从事工业自动化、运动控制或者机器人开发的工程师&#xff0c;最近几年一定没少听到EtherCAT的大名。它号称“以太网控制自动化技术”&#xff0c;本质上是一种基于标准以太网的实时工…...

第 12 篇:W55RP20-EVB-Pico MicroPython 实战:MQTT 协议基础通信验证

本文为 WIZnet W55RP20 芯片 MicroPython教程第 12 篇&#xff0c;基于官方最新固件编写&#xff0c;代码均经过实际验证&#xff0c;可直接烧录运行。 版权声明&#xff1a;本文为 WIZnet 官方原创技术文章&#xff0c;转载请注明出处。 前言 上一篇实战教程&#xff0c;我们…...

如何彻底解决C盘空间不足:Windows Cleaner终极清理指南

如何彻底解决C盘空间不足&#xff1a;Windows Cleaner终极清理指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到C盘空间不足的困扰&#xff1f;…...