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");
            });
复制代码

 

posted @   .Neterr  阅读(248)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示