JSフロントエンドキャッシュオブジェクトパッケージ


/**     */ var   C = {      "set" function (key, value, endtime) {          var   key = arguments[0] ? arguments[0] :  '' ;          var   value = arguments[1] ? arguments[1] :  '' ;          var   endtime = arguments[2] ? arguments[2] : 60 * 60 * 24 * 15;          if   (key ==  '' ) {              return   false ;          }          if   (key && value ==  '' ) {              return   C.del(key);          }          if   (key && value !=  '' ) {              var   saveobj = {                  data: value,                  //time: time(), //                  etime: time() + endtime              }              localStorage.setItem(key, JSON.stringify(saveobj));              return   true ;          }      },      "clear" function () {          localStorage.clear();      },      "del" function (key) {          localStorage.removeItem(key);      },      "get" function (key) {          var   res = json_decode(localStorage.getItem(key));          if   (!res) {              return   false ;          }          if   (res.etime               localStorage.removeItem(key);              return   false ;          }          return   res.data;      },      "all" function () {          var   a =  new   Array();          for   ( var   i = 0; i               var   key = localStorage.key(i);              var   res = json_decode(localStorage.getItem(localStorage.key(i)));              if   (res.etime                   localStorage.removeItem(key);              else   {                  a[key] = res.data;              }          }          return   a;      },      "gc" function () {          var   ctime = time();          for   ( var   i = 0; i               var   key = localStorage.key(i);              var   res = json_decode(localStorage.getItem(localStorage.key(i)));              if   (res.etime                   localStorage.removeItem(key);              }          }      },      "init" function () {          var   s = arguments[0] ? arguments[0] : 3;          s = s * 1000;          C.gc();          setInterval( function () {              C.gc();          }, s);      } }
  //Json function   json_encode(obj) {      return   JSON.stringify(obj) }
  function   json_decode(s) {      var   j = eval( '('   + s +  ')' );      return   j; }
  // function   time() {      return   Math.floor( new   Date().getTime() / 1000); }
 
 
 
#Cオブジェクトの使い方
//期限切れ回収時間の初期化、着信回収精度30秒
C.init(30);
//キャッシュの設定
C.set("key","value");
//有効期限付きキャッシュ200の設定後有効期限切れ
C.set("key","value",200);
//オブジェクトを保存する
var req = {}
req.id = 5;
req.name = "wangcong";
req.time = time();
C.set("wc",req);
//キャッシュの取得
C.get("key")
//キャッシュの削除
C.del("key");
//キャッシュクリア
C.clear()
//キャッシュスペースのすべてを返す
C.all()