下面实现对列的常见操作及验证
<!doctype html>
<html lang="en">
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Queue的使用!
<!-- 封装队列类-用数组实现-->
function Queue(){
//属性
this.items=[]
// 方法
// 1.将元素插入到队列中
Queue.prototype.enqueue=(elements)=>{
this.items.push(elements)
}
// 2.从队列中删除首要元素
Queue.prototype.dequeue=()=>{
//这是js中的shift删除方法,用于把数组中第一个元素的值从其中删除,并返回第一个元素的值
return this.items.shift()
}
// 3.查看当前的元素
Queue.prototype.front=()=>{
return this.items[0]
}
// 4.查看队列是否为空
Queue.prototype.isEmpty=()=>{
return this.items.length===0
}
// 5.查看队列中元素的个数
Queue.prototype.size=()=>{
return this.items.length
}
// 6.toSting的方法
Queue.prototype.toString=()=>{
let resultString=''
for (let i=0i
resultString +=this.items[i]+' '
}
return resultString
}
}
// 使用队列
let queue=new Queue()
//验证,将元素加入到队列中
queue.enqueue('abc')
queue.enqueue('cba')
queue.enqueue('nba')
queue.enqueue('cxw')
alert(queue)
//从队列中删除元素
queue.dequeue()
alert(queue)
queue.dequeue()
alert(queue)
//验证front
alert(queue.front())
//、验证其他方法
alert(queue.isEmpty())
alert(queue.size())
</html>
验证结果
使用jQuery队列就行,执行原理先进先出,按顺序执行。
jQuery(document).queue("message",function () {jQuery.ajax({
url:ajaxurl,
data:{ action:"Show",param:Math.random() },
type:"post",
dataType:"json",
success:function(jsonNotice){
var obj = jsonNotice
jQuery("#messagebody").empty()
jQuery.each(obj ,function(i, n) {
alert(‘sds’);
})
jQuery(document).dequeue("message")
},
error:function(){
//alert("error")
jQuery(document).queue("message", [] )
}
})
})
jQuery(document).queue("message",function () {
jQuery.ajax({
url:ajaxurl,
data:{ action:"returnCount",param:Math.random() },
type:"post",
success:function(str){
PgCount = str
jQuery(document).dequeue("message")
},
error:function(){
jQuery(document).queue("message", [] )
}
})
})
//分页DIV
jQuery(document).queue("message",function () {
if(PgCount>0)
{
jQuery("#null_face").hide()
jQuery("#messagepage").pagination(PgCount, {
callback: pageselectCallback,
prev_text: '上一页',
next_text: '下一页',
items_per_page:5,
num_display_entries:6,
current_page:pageindex,
num_edge_entries:2
})
jQuery(document).dequeue("message")
}
else
{
jQuery("#null_face").show()
jQuery("#messagepage").empty()
}
})
jQuery(document).dequeue("message") //触发队列
}
这是一个例子