页面有多个向后台发送的请求加载过程中显示loading,加载完成

2019-03-18  本文已影响0人  一名有马甲线的程序媛
    //全局加载动画
    var ajax_set = function() {
        var count = 0;
        var callback = null;
        return {
            ajax: function(config) {
                count += 1;
                var success = config.success;
                config.success = function(result) {
                    success && success(result);
                    count -= 1;
                    count == 0 && callback && callback();
                };
                $.ajax(config);
            },
            complete: function(_callback) {
                callback = _callback;
            }
        };
    };

    var handler = ajax_set();
    var u=window.location.href;
    time_c(u,$(".BLACKCOVER_outer1"),".al_in");
    handler.complete(function() {
        clearTimeout(time_c(u));
        $(".BLACKCOVER_outer1").fadeOut();
        hide();
//      mini_scroll($(".scroll_outer1"));
        $(".scroll_outer").each(function(){
            mini_scroll($(this));
        });
    });
    //5秒未刷出~显示手动刷新
    function time_c(u,$outer,out){
        var t=setTimeout(function(){
            if(!$outer.is(":hidden")){
                var $ref=$("<div class='ref_out'>如果长时间无响应<a href="+u+" class='ref'>请点击这里刷新</a></div>");
                $outer.find(out).append($ref);
            }
        },5000);
        return t;
    }

原理:每发送一次请求就+1,每执行完一次请求就-1,最后数字得0 就说明都请求完了

上一篇 下一篇

猜你喜欢

热点阅读