# js_localStorage_cache **Repository Path**: lixin_gg/js_localStorage_cache ## Basic Information - **Project Name**: js_localStorage_cache - **Description**: 将 localStorage 用做缓存 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2018-11-07 - **Last Updated**: 2023-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 将 localStorage 用作缓存 --- ### Usage ```javascript var cache = new LocalCache("test_"); cache.set("key", {name: "Alice", age: 20}, 10); // 写缓存 "key",有效期 10 秒 var info = cache.get("key"); // 读缓存 cache.has("key"); // 缓存是否存在 cache.remove("key"); // 删除缓存 // 读缓存,若不存在则写入 cache.getOrSet("key", function() { return 100; }, 3600); // 事件订阅: // 对 key 进行 set, remove 操作时,派发订阅的事件 // 若处理函数返回 false, 将不执行操作 // 处理函数签名 function (type, key, value, expires) {} // - type string 事件类型:"set", "remove" // - key string 缓存key // - value mixed 缓存值,仅当 type == "set" 时存在 // - expires int 缓存有效期,仅当 type == "set" 时存在 cache.subscribe(id, "key", function (type, key, value, expires){ }) // 取消事件订阅: cache.unsubscribe(id, "key") // 清理当前前缀下的所有缓存数据 // 删除所有 缓存前缀为 "test_" 的缓存数据 // 警告: 若有另一缓存对象,其缓存前缀为 "test_2_",也将被一并清理! // 若未设置缓存前缀(缓存前缀为 ""),不执行任何操作,返回 false cache.clear(); ```