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

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

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

这个标记是全局的。

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

        }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值