localstorage本地定時緩存


   在做一個網站時,起初直接就是從服務器獲取數據進行交互,沒有用一些本地緩存做優化,項目做下來就特別卡,並且對服務器造成了很大的壓力,經過請教,查詢,找到這樣一個定時緩存的例子。html5定時緩存,從數據庫獲取到數據,如果不是實時變化的可以緩存到本地,隔一段時間后再次更新,可以提高網站瀏覽速度,也可以減少服務器壓力。各位看官在做一些項目優化是可以試着應用上這個緩存的功能。

 1 var MyLocalStorage = {
 2               Cache: {
 3                    /**
 4                     * 總容量5M
 5                     * 存入緩存,支持字符串類型、json對象的存儲
 6                     * 頁面關閉后依然有效 ie7+都有效
 7                     * @param key 緩存key
 8                     * @param stringVal
 9                     * @time 數字 緩存有效時間(秒) 默認60s 
10                     * 注:localStorage 方法存儲的數據沒有時間限制。第二天、第二周或下一年之后,數據依然可用。不能控制緩存時間,故此擴展
11                     * */
12                    put: function(key, stringVal, time) {
13                         try {
14                              if(!localStorage) {
15                                   return false;
16                              }
17                              if(!time || isNaN(time)) {
18                                   time = 60;
19                              }
20                              var cacheExpireDate = (new Date() - 1) + time * 1000;
21                              var cacheVal = {
22                                   val: stringVal,
23                                   exp: cacheExpireDate
24                              };
25                              localStorage.setItem(key, JSON.stringify(cacheVal)); //存入緩存值 
26                         } catch(e) {}
27                    },
28                    /**獲取緩存*/
29                    get: function(key) {
30                         try {
31                              if(!localStorage) {
32                                   return false;
33                              }
34                              var cacheVal = localStorage.getItem(key);
35                              var result = JSON.parse(cacheVal);
36                              var now = new Date() - 1;
37                              if(!result) {
38                                   return null;
39                              } //緩存不存在 
40                              if(now > result.exp) { //緩存過期 
41                                   this.remove(key);
42                                   return "";
43                              }
44                              return result.val;
45                         } catch(e) {
46                              this.remove(key);
47                              return null;
48                         }
49                    },
50                    /**移除緩存,一般情況不手動調用,緩存過期自動調用*/
51                    remove: function(key) {
52                         if(!localStorage) {
53                              return false;
54                         }
55                         localStorage.removeItem(key);
56                    },
57                    /**清空所有緩存*/
58                    clear: function() {
59                         if(!localStorage) {
60                              return false;
61                         }
62                         localStorage.clear();
63                    }
64               } //end Cache 
65           }
66           
        //調用緩存函數 67 function getHotList() { 68 try { 69 var cache = MyLocalStorage.Cache.get("cacheKey"); 70 if(cache == null) { 71 $.get("php/timeUpdata.php", function(data) { 72 // result = JSON.parse(data);//字符串轉josn串 73 MyLocalStorage.Cache.put("cacheKey", data, 2 * 60); 74 }); 75 } 76 } catch(e) {} 77 } 78 getHotList();

   如果緩存的數據量比較大的話,就需要將數據轉換為string格式。


免責聲明!

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



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