转自阿里巴巴团队
提起这两个名词,大家应该非常的熟悉,所谓的栈:是一种限制了插入和删除数据项操作的数据结构。栈又叫做后进先出(LIFO)结构。而队列:是对元素的插入和删除操作具有限制的数据结构的一员。队列又叫做先进先出(FIFO)结构。利用这两个,我们就可以做到请求管理了,当然要真正实现请求管理,其实还是有蛮多的工作要去做。这里提供一点思路。下面讲的虽然很简单,但是会很有用。
在JavaScript中我们可以利用Array对象以及内置的一些方法就可以模拟栈和队列的效果了。细数Array对象的方法其实还是很多,常用的有push,pop,join,concat,slice,shift,unshift,sort,splice等等。要模拟栈,只需用到push和pop两个方法,而要模拟队列,也只需要push和shift两个方法。
- /************栈***************/
- var stack = new Array();//定义一个空栈
- stack.push("a1");
- stack.push("a2");
- stack.push("a3");
- alert(stack.toString());//output a1,a2,a3
- var sItem = stack.pop();
- alert(sItem);//output a3
- alert(stack.toString());//output a1,a2
- /************队列****************/
- var enqueue = new Array();//定义一个空的队列
- enqueue.push("b1");
- enqueue.push("b2");
- enqueue.push("b3");
- alert(enqueue.toString());//ouput b1,b2,b3
- var qItem = enqueue.shift();
- alert(qItem);//output b1
- alert(enqueue.toString());//output b2,b3
要真正的实现请求管理,其中充斥着逻辑性和技巧性,剩下的有待完善中,也同时期望大家一起来探讨和分享你是如何做到请求管理的。