JS-对列的简单操作

JavaScript018

JS-对列的简单操作,第1张

我们先来看一看对列的常见操作

下面实现对列的常见操作及验证

<!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")   //触发队列

    }

    

    这是一个例子