AngularJs $cacheFactory 緩存服務


可能之前的api寫的有些枯燥吧,因為不燒腦,不需要很多邏輯思維來做處理,那么之后的文章會有趣很多,慢慢的開始燒腦了,准備好大量腦細胞的死亡吧~   先來篇簡單的緩存服務。

本文將api文檔里的$cacheFactory和 $cacheFactory.Cache 放到一起學習,其實就差不多的東西。

$cacheFoctory

用於生成一個用來存儲緩存對象的服務,並且提供對對象的訪問。

$cacheFactory.Cache

一個用於存儲和檢索數據的緩存對象。主要使用$http和腳本指令來緩存模板和其他數據。

該服務有以下方法:

put(key,value);

在緩存對象中插入一個鍵值對(key,value)。

get(key);

在緩存對象中通過指定key獲取對應的值。

romove(key);

在緩存對象中通過指定key刪除對應的值。

removeAll();

刪除緩存對象中所有的鍵值對。

destroy();

銷毀這個緩存對象。

info();

獲取緩存對象信息(id,size)。

key:string類型,緩存對象中的值名稱。

value:所有類型,緩存對象中的值。

使用代碼:

  (function () {
    angular.module("Demo", [])
    .controller("testCtrl", ["$cacheFactory",testCtrl]);
    function testCtrl($cacheFactory) {
       var myCache = $cacheFactory("my-cache");
       myCache.put("cache", "This is cache-content");
       myCache.put("another-cache", "This is another cache-content");
       var getCache = myCache.get("cache"); //This is cache-content
       var getInfo = myCache.info();//{id: "my-cache", size: 2}
       myCache.remove("another-cache");
       getInfo = myCache.info();//{id: "my-cache", size: 1}
       myCache.removeAll();
       getInfo = myCache.info();//{id: "my-cache", size: 0}
       myCache.destroy();
       getInfo = myCache.info();//{size: 0}
    };
  }());

值的注意的是,這是應用程序的緩存服務,而不是瀏覽器本地的緩存。所以當你刷新瀏覽器,初始化整個應用程序的時候,之前的緩存數據都會丟失。那么問題就來了,怎么才能刷新/初始化應用程序而不丟失之前保存的數據呢,這個可以使用localStorage或者cookies,關於ng的這兩個存儲操作,之后的文章會寫到,現在根據api一個個慢慢來寫,有需要和有興趣的話,也可以自己網上找資料學習或和野獸進行交流討論,大家共同進步...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM