js助手函数

ajax二次封装

    var _ajax = function (opt) {
        var defaultOption = {
            type: "POST",
            data: { "key": _const.TOKEN },
            dataType: 'JSON',
            cache: false,
            error: function (xhr) {
                console.info(xhr);
            }

        };
        for (key in opt) {
            if (key === "data") {
                for (dataKey in opt["data"]) {
                    defaultOption["data"][dataKey] = opt["data"][dataKey];
                }
            }
            else {
                defaultOption[key] = opt[key];
            }
        }
        return $.ajax(defaultOption);
    };

错误重试,如果要执行的函数返回false,就重新执行。(在代码中因为要用到异步,当一个异步依赖另一个异步返回的数据时,偶尔会出现数据不同步,所以需要错误重试)

function retry(func,millSeconds,maxCount){/*millSeconds:间隔时间,maxCount:最大循环次数*/

    if(func()===false){
        if (--maxCount>0) {
            window.setTimeout(function(){
                retry(func,millSeconds,maxCount);
            },millSeconds);
        }
    }
}

//调用
retry(function(){
   //如果需要重试,返回false
    return false;
},1500,3)

 页面加载完成事件,相当于jQuery.ready():

            function addOnloadEvent(fnc) {
                if (typeof window.addEventListener != "undefined")
                    window.addEventListener("load", fnc, false);
                else if (typeof window.attachEvent != "undefined") {
                    window.attachEvent("onload", fnc);
                }
                else {
                    if (window.onload != null) {
                        var oldOnload = window.onload;
                        window.onload = function (e) {
                            oldOnload(e);
                            window[fnc]();
                        };
                    }
                    else {
                        window.onload = fnc;
                    }
                }
            }
//调用
            addOnloadEvent(function(){
                console.info("load success");
            });
原文地址:https://www.cnblogs.com/fanfan-90/p/12789063.html