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

避免数据二次提交的处理方式

有时候,提交数据,会出现重复提交的问题。

可以通过一个标记锁死,等待执行完了,再解锁。

这个标记是全局的。

        var flag = false; // 全局变量
        // 藏宝
        function gotoBuriedTreasure() {
            // 藏起来
            var amount = parseInt($("#buried-treasure-value").val());

            if (typeof amount != 'number' || amount < 1000 || amount%40 != 0) {
                // 藏宝值
                toast('藏宝数量必须大于1000,并且是40的倍数');
                return;
            }

            var user = $api.getStorage('user');
            showNumberModel(function(actionPwd){
                    if (flag) {
                        return;
                    }
                    flag = true; // 避免二次提交

                    // 藏宝
                    api.ajax({
                        url: BASE_REQUEST_URL + '/Customer/TreasureInvest',
                        method: 'post',
                        data: {
                            values: {
                                customerId: user.customer_id,
                                actionPwd:actionPwd,
                                amount:amount
                            }
                        }
                    }, function(json, err) {
                        if (json && json.result) {

                            var auitoast = new auiToast();

                            if (amount>=1000 && amount < 10000) { // 绿色箱子
                                auitoast.success({
                                    title:"恭喜藏宝成功,获得40个绿色藏宝图。",
                                    duration:2000
                                });
                            }

                            if (amount>=10000 && amount < 100000) { // 蓝色箱子
                                auitoast.success({
                                    title:"恭喜藏宝成功,获得40个蓝色藏宝图。",
                                    duration:2000
                                });
                            }

                            if (amount>=100000 && amount < 500000) { // 橙色箱子
                                auitoast.success({
                                    title:"恭喜藏宝成功,获得40个橙色藏宝图。",
                                    duration:2000
                                });
                            }

                            if (amount >= 500000) { // 紫色箱子
                                auitoast.success({
                                    title:"恭喜藏宝成功,获得40个紫色藏宝图。",
                                    duration:2000
                                });
                            }

                            buriedTreasureDialogHide();
                            api.sendEvent({
                                name: 'game_data_reload',
                                extra: {
                                    msg: '数据刷新'
                                }
                            });
                        } else {
                            flag = false; // 失败可以二次提交
                            toast(json.msg);
                        }
                    });
                });

        }

这是一种思路,其他的语言可以一样使用。

转载于:https://www.cnblogs.com/jiqing9006/p/6283362.html

相关文章:

  • 磁盘配额实例详解
  • 框架与超链接的小示例
  • chrome的功能Copy as cURL
  • hibernate-部分字段查询方案
  • SQL语句-创建索引
  • Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
  • ctime 写到文件
  • CentOS 5.4 final下Systemtap的安装
  • |BZOJ 1477|数论|青蛙的约会
  • 一个简单的通讯服务框架(大家发表意见一起研究)JAVA版本
  • mysql中的列属性
  • tcp三次握手与四次挥手
  • ajax php 点击加载更多
  • 【VS开发】ClientToScreen 和ScreenToClient 用法
  • 简单获取CDN背后网站的真实IP
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • AHK 中 = 和 == 等比较运算符的用法
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • E-HPC支持多队列管理和自动伸缩
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Koa2 之文件上传下载
  • opencv python Meanshift 和 Camshift
  • SpringBoot几种定时任务的实现方式
  • text-decoration与color属性
  • Theano - 导数
  • 编写高质量JavaScript代码之并发
  • 爬虫模拟登陆 SegmentFault
  • 双管齐下,VMware的容器新战略
  • 学习笔记TF060:图像语音结合,看图说话
  • 智能网联汽车信息安全
  • 进程与线程(三)——进程/线程间通信
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (十)c52学习之旅-定时器实验
  • (推荐)叮当——中文语音对话机器人
  • (转)母版页和相对路径
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .net和jar包windows服务部署
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • [ 转载 ] SharePoint 资料
  • [17]JAVAEE-HTTP协议