WithCoderWithCoderWithCoder

Javascript数组实现队列存储后台返回大量数据并读取

最近做前端javascript开发的时候,后台数据有几万条.返回到前端后,需要逐个读取处理.当时考虑如果后台一次将全部数据返回,服务端不好处理.而且数据量太大,读取时间太长.就考虑将数据分割,使用ajax异步读取数据,并将数据合并保存到javascript前端数组中.这样一边异步取数据,一边从数组中读数据.

为了保证数据的顺序正确,用到了队列的概念:队列是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出.这就需要用到数组的合并及读取的相关知识.有关javascript数组合并的相关知识,可以参考本站的javascript数组合并的几种方法.

实现队列操作的伪代码如下:

<script>

    1. 创建一个数组模拟队列

    var arrList = [];

    2. 执行ajax方法从回台获取数据,合并到数组队列

    function appPost(){

        $.ajax({

            url: "目标地址",

            data: 请求参数,

            type: "POST",

            success: function (data){

                arrList.push.apply(data); // 此处建议使用apply方法合并数据,具体原因请查看javascript数组合并的几种方法

                // 此处可以改变请求参数,递归调用appPost方法

                addPost();

            }

        });

    }

    3. 读取数组队列的数据(先存入的数据,先读取)

    function readData(){

        var data = arrList.shift(); // shift()方法读取数组的第一个元素并从数组中删除

        // 处理读取的data

        if (条件判断数据没有全部处理完成){

            readData();

        }

    }

</script>

欢迎分享交流,转载请注明出处:WithCoder » Javascript数组实现队列存储后台返回大量数据并读取