對storage進行了封裝:WebStorageCache
WebStorageCache 基于接口 storage interface。 對storage進行了封裝,添加了超時時間,序列化方法。客戶端瀏覽器可以像cookie一樣使用。用'localStorage'或者'sessionStorage'進行數據緩存。
使用WebStorageCache,只要在頁面上引入下面代碼即可。
<script src="src/web-storage-cache.js"></script> <script> // create WebStorageCache instance. var wsCache = new WebStorageCache(); // cache 'wqteam' at 'username', expired in 100 seconds wsCache.set('username', 'wqteam', {exp : 100}); </script>
也可以在 RequireJS 使用 WebStorageCache:
define(['web-storage-cache'], function(WebStorageCache) { // create WebStorageCache instance. var wsCache = new WebStorageCache(); // cache 'wqteam' at 'username', expired in 100 seconds wsCache.set('username', 'wqteam', {exp : 100}); });
例子
var wsCache = new WebStorageCache(); // 緩存字符串'wqteam' 到 'username' 中, 超時時間100秒 wsCache.set('username', 'wqteam', {exp : 100}); // 超時截止日期 2015 5 18 wsCache.set('username', 'wqteam', {exp : new Date('2015 5 18')}); // 獲取緩存中 'username' 的值 wsCache.get('username'); // 緩存簡單js對象,默認使用序列化方法為JSON.stringify。可以通過初始化wsCache的時候配置serializer.serialize wsCache.set('user', { name: 'Wu', organization: 'wqteam'}); // 讀取緩存中的簡單js對象 - 默認使用反序列化方法為JSON.parse。可以通過初始化wsCache的時候配置serializer.deserialize var user = wsCache.get('user'); alert(user.name + ' belongs to ' + user.organization); // 刪除緩存中 'username' wsCache.delete('username'); // 手工刪除所有超時CacheItem, wsCache.deleteAllExpires(); // 清除客戶端中所有緩存 wsCache.clear(); // 為已存在的(未超時的)緩存值設置新的超時時間。 wsCache.touch('username', {exp : 1000}); // 如果緩存中沒有key為username2的緩存,則添加username2。反之什么都不做 wsCache.add('username2', 'wqteam', 1000); // 如果緩存中有key為username的緩存,則替換為新值。反之什么都不做 wsCache.replace('username', 'new wqteam', {exp : 1000}); // 檢查當前選擇作為緩存的storage是否被用戶瀏覽器支持。 //如果不支持調用WebStorageCache API提供的方法將什么都不做。 wsCache.isSupported();
cookies替代的完美方案。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!