扫一扫分享
store.js适用于所有浏览器的本地存储,不使用 cookies 或者 flash。会根据浏览器的不同选择 localStorage, globalStorage, 和 userData 作为存储引擎。
store.js 公开了一个简单的接口来实现跨浏览器的本地存储。
// Store 'marcus' at 'username'
store.set('username', 'marcus')
// Get 'username'
store.get('username')
// Remove 'username'
store.remove('username')
// Clear all keys
store.clear()
// 存储一个对象字面量 - store.js 内部使用了 JSON.stringify
store.set('user', { name: 'marcus', likes: 'javascript' })
// 获取存储的对象 - store.js 内部使用了 JSON.parse
var user = store.get('user')
alert(user.name + ' likes ' + user.likes)
// Get all stored values
store.getAll().user.name == 'marcus'
// Loop over all stored values
store.forEach(function(key, val) {
console.log(key, '==', val)
})
store.js 会在支持 localStorage 的浏览器中使用 localStorage,对于不支持 localStorage 的 IE6 和 IE7 浏览器,则使用 userData。不会通过 cookie 去让请求变得臃肿。
store.js 会依赖 JSON 将对象去序列化到硬盘上。
只需将 store.min.js 或者 store+json2.min.js 引用到 script 标签中即可。
store.enabled 标识
如果你的产品使用了 store.js ,你必须首先检查 store.enabled 标识。
<script src="store.min.js"></script>
<script>
init()
function init() {
if (!store.enabled) {
alert('Local storage is not supported by your browser. Please disable "Private Mode", or upgrade to a modern browser.')
return
}
var user = store.get('user')
// ... and so on ...
}
</script>
LocalStorage 很多时候是可用的,但是在用的时候会抛出一个异常。比如 Safari 的 private browsing 模式。其它浏览器允许用户暂时地禁用 localStorage。
Store.js 会检测这些条件并且适当地设置 store.enabled 标识。
手机预览