ajax 缓存调用

var TUI = {};
(function() {    
    var cacheData = {
	
    };
    TUI.onceAjax = function(args){
    	
    	console.log(new Date())
		var oStat = cacheData[args.id];
		if (!oStat) {
			cacheData[args.id] = oStat = {
				bLoading : false,
				bLoaded : false,
				data : null,
				queue:[]
			}
		}
		var _callback = function(data){
			oStat.bLoaded = true;
			oStat.data = data;
            for(var i=0,len = oStat.queue.length;i<len; i++){
                oStat.queue[i](data);
            }
		};
		
		if (oStat.bLoaded) {
			args.success(oStat.data);
		} else {
			if(typeof args.success === "function"){
				oStat.queue.push(args.success);	
			}
			
			if (!oStat.bLoading) {
				oStat.bLoading = true;
				jQuery.getScript(args.url + "&var=TestJson",function(){
					_callback(window["TestJson"]);
				});
			}
		}
    };
})();

//example:
	TUI.onceAjax({
		 id:'test2',
		 url: "xxxxxx",
		 success : function(rs){
			 console.log(  rs);
			 
		 }
	 });

你可能感兴趣的:(JavaScript,Ajax)