本文共 1276 字,大约阅读时间需要 4 分钟。
/** * [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);}
很有意思,第一次使用了队列的思想!
本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6710353.html,如需转载请自行联系原作者