• 挺有意思的,队列,先进先出,排队进行!


    /**
     * [Queue]
     * @param {[Int]} size [队列大小]
     */
    function Queue(size) {
        var list = [];
    
        //向队列中添加数据
        this.push = function(data) {
            if (data==null) {
                return false;
            }
            //如果传递了size参数就设置了队列的大小
            if (size != null && !isNaN(size)) {
                if (list.length == size) {
                    this.pop();
                }
            }
            list.unshift(data);
            return true;
        }
    
        //从队列中取出数据
        this.pop = function() {
            return list.pop();
        }
    
        //返回队列的大小
        this.size = function() {
            return list.length;
        }
    
        //返回队列的内容
        this.quere = function() {
            return list;
        }
    }
    

    这个类是核心!
    项目中有个刷小礼物的功能,如果同时有多个人刷,就会出现乱七八糟的效果,没有秩序!
    通过队列,就能很好的解决!

    先定义一个全局队列!

    var queue = new Queue(100);
    

    当有礼物刷的时候,就将其存入队列当中!刷第一个礼物的时候,锁死!等第一个礼物刷完的时候,解锁!然后查询队列中是否还有未刷完的礼物,继续刷!

    刷礼物,锁上!

    queue.push(content); // 存入队列
    if (big_gift_flag) {
        big_gift_flag = false;
        var pop = queue.pop();
        showAnim('big_gift_'+ pop.customer_id +'_'+pop.gift_id,pop.gift_id);
    }
    

    刷完,解锁!判断队列是否还有未刷的礼物!

    big_gift_flag = true;
    if (queue.quere().length > 0) {
        big_gift_flag = false;
        var pop = queue.pop();
        showAnim('big_gift_' + pop.customer_id + '_' + pop.gift_id, pop.gift_id);
    }
    

    很有意思,第一次使用了队列的思想!

  • 相关阅读:
    什么是 bean 的自动装配?
    什么是 Spring 的内部 bean?
    什么是 Spring 的 MVC 框架?
    Spring AOP and AspectJ AOP 有什么区别?
    解释 JDBC 抽象和 DAO 模块?
    volatile 类型变量提供什么保证?
    一个 Spring Bean 定义 包含什么?
    什么是 Spring MVC 框架的控制器?
    使用 Spring 访问 Hibernate 的方法有哪些?
    什么是 Callable 和 Future?
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6710353.html
Copyright © 2020-2023  润新知