一、什么是緩存
一個緩存就是一個組件,它可以透明地存儲數據,以便未來可以更快地服務于請求。
緩存能夠服務的請求越多,整體系統性能就提升得越多。
二、Angular 中的緩存
2.1 $cacheFactory 簡介
$cacheFactory 是一個為所有Angular服務生成緩存對象的服務。在內部, $cacheFactory 會創建一個默認的緩存對象,即使我們并沒有顯示地創建。
要創建一個緩存對象,可以使用 $cacheFactory 通過一個ID創建一個緩存:
var cache = $cacheFactory('myCache');
這個 $cacheFactory 方法可以接受兩個參數:
cacheId (字符串):這個 cacheId 就是創建緩存時的ID名稱。可以通過 get() 方法使用緩存名稱來引用它。
capacity :這個容量描述了在任何給定時間要使用緩存存儲并保存的緩存鍵值對的最大數量。
2.2 緩存對象
緩存對象自身有下列這些方法可以用來與緩存交互。
info() : info() 方法返回緩存對象的ID、尺寸和選項。
put() : put() 方法允許我們把任意JavaScript對象值形式的鍵(字符串)放進緩存中。cache.put("hello","world");
put() 方法會返回我們放入緩存中的值。
get() : get() 方法讓我們能夠訪問一個鍵對應的緩存值。如果找到了這個鍵,它會返回它的值;如果沒有找到,它會返回 undefined 。cache.get("hello");
remove() : remove() 函數用于在找到一個鍵值對的情況下從緩存中移除它。如果沒有找到,它就會返回 undefined 。cache.remove("hello");
removeAll() : removeAll() 函數用于重置緩存,同時移除所有已緩存的值。
destory() : destory() 方法用于從 $cacheFactory 緩存注冊表中移除指定緩存的所有引用。
三、$http 中的緩存
Angular的 $http 服務創建了一個帶有ID為 $http 的緩存。 要讓 $http 請求使用默認的緩存 對象很簡單: $http() 方法允許我們給它傳遞一個 cache 參數。
3.1 默認的 $http 緩存
當數據不會經常改變時,默認的 $http 緩存就特別有用了。可以像這樣設置它:
$http({ method: 'GET', url: '/api/users.json', cache: true //設置為true只是用來使用$http默認的緩存機制});現在,通過 $http 到URL /api/user.json 的每個請求將會存儲到默認的 $http 緩存中。 這個$http 緩存中的請求鍵就是完整的URL路徑。
如果需要,也可以操作這個默認的 $http 緩存(比如,如果我們發起的另外一個沒有緩存的請求提醒我們發生了增量變化,我們就可以在默認的 $http 請求中清除這個請求)。
為了引用 $http 的默認請求,只需通過 $cacheFactory() 使用ID來獲取到該緩存:
var cache = $cacheFactory('$http');對于所掌控的緩存,我們可以在需要時進行所有的正常操作,比如檢索已緩存的響應,從緩存中清除條目,或者消除所有緩存的引用。
新聞熱點
疑難解答
圖片精選