zoukankan      html  css  js  c++  java
  • 避免数据二次提交的处理方式

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

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

    这个标记是全局的。

            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);
                            }
                        });
                    });
    
            }
    
    

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

  • 相关阅读:
    View载入具体解释
    七、备忘录模式Memento(行为型模式)
    排序算法之直接插入排序
    IOS
    Matlab得到二值图像中最大连通区域
    MVC模式利用xib文件定制collectionCell
    五大算法思想—贪心算法
    jQuery鼠标悬停显示提示信息窗体
    J2EE基础总结(5)——EJB
    iOS 打开扬声器以及插入耳机的操作
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6283362.html
Copyright © 2011-2022 走看看