推荐一个Javascript LRU Cache 对象。

阅读更多
http://www.monsur.com/projects/jscache/

这个js cache不错。 功能也比较全。在项目中用它来缓存些大计算量的javascript json 对象。


Cache cache = new Cache(200);

function reloadTagCloud() {
	if (startDate != null && endDate != null) {
		showIndicator();
		var result = null;
		if (tagSource == "Directory"){
			result = cache.getItem("Directory" + startDate + endDate);
		}
		if (result != null){
			processTagResult(result);
			hideIndicator();
			return ;
		}
		jsonrpc.subscribe.getTags(getTagsCallback, startDate, endDate, tagSource, 'frequency' /*tagOrder, should sort the top 20 locally, always use frequency on server side.*/);
	}
}

function getTagsCallback(result, exception) {
	if (exception) {
		showError("An error has occurred: " + exception.message);
	} else {
		if (tagSource == "Directory"){
			cache.setItem("Directory" + startDate + endDate, result);
		}
		processTagResult(result);
	}
	
	hideIndicator();
}

function processTagResult(result){
		tagCloud.viewTags = result.sort(sortByFrquency);

		tagCloud.setTagFontSizes();

		updatTagCloudViewByOrder();
		try {
			dojo.byId("tagsButton").focus();
		} catch (e) {}
}

你可能感兴趣的:(Cache,JavaScript,Dojo,json)