緩存
今天,學習了緩存,突然發現緩存有巨大的作用,可以節省流量,而且
看到很多工作要求,發現需要有開發緩存的經驗。所以總結一下。
1.什么是緩存
就是我們手動開辟一塊空間,讓他一直存在,且不會給垃圾回收機制回收。
案例:這個案例是一個緩存機制,最大數據存儲三條數據,多了,就會刪除
前面的數據
function createCache () {
var data = [], max = 3;
// 去掉 var 的目的是為了使得變量編程全局變量, 可以調試查看 data 中的數據
// 開發中不允許省略 var
function cache ( key, value ) {
// 做判斷, 如果超出范圍, 則, 將最開始加入的 移除
// 將數組 第 0 項元素移除的 splice, shift
if ( data.length >= 3 ) {
// 需要先移除
var temp = data.shift();
delete cache[ temp ];
}
data.push( key );
cache[ key ] = value;
}
return cache;
}
var kvCache = createCache();
如上代碼,是我們學習所研究的代碼,看到上面代碼我發現有不足之處。
1.多申請了一個數組。和一個變量。
2.看起來不易讓人理解。
我自己寫了一個改良版的,使用面向對象的寫的。
(function(w){
function cache(){
this.length=0; //存放數據的個數
this.maxLength=3; //允許存放數據最大的個數
}
cache.prototype.add=function(str,value){
++this.length;
this[str]=value;
if(this.length>this.maxLength){ //如果存放數據長度大于最大數據長度就刪除
console.log(1);
for(var k in this){
if(k=='length' ||k=='maxLength')continue;
delete this[k];
break;
}
}
}
w.cache= new cache();
})(window);