基于hashtable的简单javascript页面数据缓存
在《利用JS特性实现的简单HashTable 》文章中,实现了一个极简单的HashTable。利用这个hashtable可以实现一个简单的页面缓存对象cache,代码如下:
var cache = function(){
var hash = new Hash();//定义一个hashtable容器
return {
contain : function(key){
return hash.contain(key);
},
add : function(key,obj){
hash.add(key,obj);
},
remove : function(key){
hash.remove(key);
},
get : function(key){
return hash.get(key);
},
length : function(){
return hash.length();
}
};
}();
思路很简单,定义私有的容器对象,返回一个新对象,这个新对象通过闭包对容器进行增加、修改、移除等操作。这里将cache对象设计成signletion模式,因为我们一个页面只需要一个缓存。测试代码如下:
cache.add("sds",{"name":"sds","age":30});
var p = cache.get("sds");
alert(cache.length());//1
cache.remove("sds");
alert(cache.length());//0
alert(p.name);//sds
alert(p.age);//30
var cache = function(){
var hash = new Hash();//定义一个hashtable容器
return {
contain : function(key){
return hash.contain(key);
},
add : function(key,obj){
hash.add(key,obj);
},
remove : function(key){
hash.remove(key);
},
get : function(key){
return hash.get(key);
},
length : function(){
return hash.length();
}
};
}();
思路很简单,定义私有的容器对象,返回一个新对象,这个新对象通过闭包对容器进行增加、修改、移除等操作。这里将cache对象设计成signletion模式,因为我们一个页面只需要一个缓存。测试代码如下:
cache.add("sds",{"name":"sds","age":30});
var p = cache.get("sds");
alert(cache.length());//1
cache.remove("sds");
alert(cache.length());//0
alert(p.name);//sds
alert(p.age);//30