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] , [参数] ,[回调函数] );

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

     演示例子:

  • 相关阅读:
    拦截器getmodel方法什么时候被调用(没搞懂有什么鸟用,自己搭的项目中用到了这个)
    Convention插件的使用(会涉及content目录,jsp必须放入这个下面才能映射成功基于注解的配置)
    Spring组件扫描<context:component-scan/>使用详解
    Eclipse从数据库逆向生成Hibernate带注解的实体类
    HibernateTool的安装和使用(Eclipse中)
    将一字符串首字母转大写
    二分(折半)查找算法
    按位与运算符
    注解及自定义注解
    根据前序遍历和中序遍历得出后序遍历
  • 原文地址:https://www.cnblogs.com/relucent/p/3317507.html
Copyright © 2011-2022 走看看