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"); });