在《利用JS特性实现的简单HashTable》文章中,实现了一个极简单的HashTable。利用这个hashtable可以实现一个简单的页面缓存对象cache,代码如下:
1 var cache = function(){
2
3 var hash = new Hash();//定义一个hashtable容器
4 return {
5 contain : function(key){
6 return hash.contain(key);
7 },
8 add : function(key,obj){
9 hash.add(key,obj);
10 },
11 remove : function(key){
12 hash.remove(key);
13 },
14 get : function(key){
15 return hash.get(key);
16 },
17 length : function(){
18 return hash.length();
19 }
20 };
21 }();
思路很简单,定义私有的容器对象,返回一个新对象,这个新对象通过闭包对容器进行增加、修改、移除等操作。这里将cache对象设计成signletion模式,因为我们一个页面只需要一个缓存。测试代码如下:
1 cache.add("sds",{"name":"sds","age":30});
2 var p = cache.get("sds");
3 alert(cache.length());//1
4 cache.remove("sds");
5 alert(cache.length());//0
6 alert(p.name);//sds
7 alert(p.age);//30
转自:http://www.babyhey.com/forum.php?mod=viewthread&tid=1211&extra=page%3D1