javascript - 代码优化相关问题,想请教一下大家的做法
伊谢尔伦
伊谢尔伦 2017-04-11 09:00:10
[JavaScript讨论组]

先贴出伪代码

        if(没有过期) {
            if(有次数) {
                // 开始抽奖操作
                向后台申请本次抽奖数据
                    doLottery(function() {
                        拆解本次中奖信息
                        根据中奖信息进行转动*操作
                        打开按钮限制
                    });
            }
            else if(没有次数) {
                alert("没有次数");
                打开按钮限制
            }
        }
        else if(已经过期) {
            alert("已经过期");
            打开按钮限制
        }

这里面的 "打开按钮限制" 的意思是让页面上的抽奖按钮无法连续点击(在本次抽奖行为未完成前)。

大家可以看到这里同样操作的伪代码被重复了3次。

我觉得这样很不优雅,想请教一下大家,应该如何优化这样的代码?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
巴扎黑
if(没有过期&&有次数){
     // 开始抽奖操作
                向后台申请本次抽奖数据
                    doLottery(function() {
                        拆解本次中奖信息
                        根据中奖信息进行转动*操作
                        打开按钮限制
                    });
}else if(没有过期&&没有次数||已经过期){
    alert("没有次数||已经过期");
    打开按钮限制
}
高洛峰

这样可好

是否能抽奖 = true;
msg = '';
if(已经过期){
    是否能抽奖 = false;
    msg = '已经过期';
}
//是否能抽奖还为真时才判断有没有次数
if(是否能抽奖&&没有次数){
    是否能抽奖 = false;
    msg = '没有次数';
}
if(!是否能抽奖){
     alert(msg);
     打开按钮限制
}else{
    // 开始抽奖操作
    向后台申请本次抽奖数据
    doLottery(function() {
        拆解本次中奖信息
        根据中奖信息进行转动*操作
        打开按钮限制
    });
}
黄舟

个人观点:

if(!没有过期) 过期... return;
if(!有次数) 没有次数... return;
lottery();

抽奖操作可以单独拉在外面方便复用
var lottery = function(){...}
阿神
var s = 0;//已过期
var s = 10;//没过期无次数
var s = 11;//没过期有次数
switch(s){
    case 0:
        alert("已经过期");
        break;
    case 10:
        alert("没过期");
        break;
    case 11:
        // 开始抽奖操作
        向后台申请本次抽奖数据
        doLottery(function() {
            拆解本次中奖信息
            根据中奖信息进行转动*操作
        });
        break;
    default:
}
打开按钮限制
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号