zoukankan      html  css  js  c++  java
  • jquery Ajax Queue 队列实现

    有时候我们需要按顺序调用一组ajax,这些ajax需要有先后顺序,类似于同步的ajax,那么我们可以通过以下的方式来实现:

    (这个Ajax用到jQuery.post) 

    //定义一个AJAX队列
    $.newAjaxQueue = function() {
        var queue = [],posting=false, fn = function() {
            if(queue.length){
                posting = true;
                var request = queue.shift();
                var url = request.url;
                var params = request.params;
                var callback = request.callback;
                if (typeof(params) === 'function') {
                    callback = params;
                    params = {};
                }
                $.post(url, params, function(response, status, xhr) {
                    try{
                        if (typeof(callback) === 'function') {
                            callback(response);
                        }
                    }finally{
                        fn();
                        posting = false;
                    }
                }, 'text');
            }
        },instance = ({
            post: function(url,params,callback){
                queue.push({
                    url:url,params:params,callback:callback
                });
                if(posting===false){
                    fn();
                }
                return instance;
            }
        });
        return instance;
    };

    使用方法:

    首先创建一个Ajax队列,然后为这个Ajax队列,添加需要执行的ajax操作(post操作),这些Ajax会按顺序执行,一个执行完毕之后(获得返回值),再继续执行下一个。

    $.newAjaxQueue().post( [URL] , [参数] ,[回调函数] ).post( [URL] , [参数] ,[回调函数] ).post( [URL] , [参数] ,[回调函数] );

    这个实现没有考虑到超时等情况,如果需要可以自己添加。

     演示例子:

  • 相关阅读:
    Java入门学习路线目录索引(持续更新中)
    关于技术面试,面试官会怎么考察?
    什么是REST以及 RESTful?
    程序猿一般可以从什么平台接私活
    Statement常用的方法回顾
    信息网络安全协会学习总结提交规范
    20155322 2017-2018-1 《信息安全系统设计》第五周 MyBash实现
    20155322 2017-2018-1《信息安全系统设计》第五周 学习总结
    2017-2018-1 20155322 20155327 实验一 开发环境的熟悉
    20155322 2017-2018-1《信息安全系统设计》第四周学习总结
  • 原文地址:https://www.cnblogs.com/relucent/p/3317507.html
Copyright © 2011-2022 走看看