js插件store(本地存储)
来源:互联网 发布:美国知乎quora评价中国 编辑:程序博客网 时间:2024/05/23 21:39
store.js 是一个兼容所有浏览器的 LocalStorage 包装器,不需要借助 Cookie 或者 Flash。store.js 会根据浏览器自动选择使用 localStorage、globalStorage 或者 userData 来实现本地存储功能。
一 存储接口
通过 $.AMUI.store
调用。检测是否支持(开启) LocalStorage
var store = $.AMUI.store;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 ...
Safari 的无痕浏览
模式或者用户禁用了本地存储时,store.enabled
将返回 false
。
二 浏览器如何禁用 LocalStorage:
- Firefox: 地址栏输入
about:config
, 将dom.storage.enabled
的值设置为false
; - Chrome:
设置
→隐私设置
→内容设置
→阻止网站设置任何数据
。
三 接口列表
LocalStorage 受同源策略限制,以下操作仅限于同源下的数据。
store.set(key, val)
: 存储key
的值为val
;store.get(key)
: 获取key
的值;store.remove(key)
: 移除key
的记录;store.clear()
: 清空存储;store.getAll()
: 返回所有存储;store.forEach()
: 遍历所有存储。
var store = $.AMUI.store;// 存储 'username' 的值为 'marcus'store.set('username', 'marcus')// 获取 'username'store.get('username')// 移除 'username' 字段store.remove('username')// 清除所有本地存储store.clear()// 存储对象 - 自动调用 JSON.stringifystore.set('user', { name: 'marcus', likes: 'javascript' })// 获取存储的对象 - 自动执行 JSON.parsevar user = store.get('user')alert(user.name + ' likes ' + user.likes)// 从所有存储中获取值store.getAll().user.name == 'marcus'// 遍历所有存储store.forEach(function(key, val) { console.log(key, '==', val)})
四 浏览器支持
绝大多数浏览器(包括 IE 8)都原生支持 LocalStorage。
你的浏览器测试结果为:
second pass bad assert: getAll gets all 4 values
不同浏览器对本地存储单条记录的长度限定不同,具体可以通过以下链接测试:
- Web Storage Support Test
- Test of localStorage limits/quota
五 注意事项
原生方法与 store.js 的差异
使用原生方法操作:
localStorage.myage = 24localStorage.myage !== 24 // truelocalStorage.myage === '24' // truelocalStorage.user = { name: 'marcus', likes: 'javascript' }localStorage.user === "[object Object]" // truelocalStorage.tags = ['javascript', 'localStorage', 'store.js']localStorage.tags.length === 32 // truelocalStorage.tags === "javascript,localStorage,store.js" // true
使用 store.js 序列化后的结果:
store.set('myage', 24)store.get('myage') === 24 // truestore.set('user', { name: 'marcus', likes: 'javascript' })alert("Hi my name is " + store.get('user').name + "!") // 仍然返回对象store.set('tags', ['javascript', 'localStorage', 'store.js'])alert("We've got " + store.get('tags').length + " tags here") // 仍然返回数组
阅读全文
0 0
- js插件store(本地存储)
- store.js - 实现本地存储(LocalStorage)
- store.js - 轻松实现本地存储(LocalStorage)
- store.js - 轻松实现本地存储(LocalStorage)
- store.js - 轻松实现本地存储(LocalStorage)
- 轻松实现本地存储(LocalStorage)-store.js
- store.js - 轻松实现本地存储(LocalStorage)
- javascript之store.js 轻松实现本地存储(LocalStorage)
- 跨浏览器本地存储-Store.js
- Html5系列(十一)store.js - 轻松实现本地存储(LocalStorage)
- JS本地存储应用
- js浏览器本地存储
- js本地存储 localstorage
- js本地存储localStorage
- js本地存储
- JS-本地存储数据库
- JS中的本地存储
- js 本地存储 对象存储
- initWithNibName和loadNibNamed的区别
- 嵌入式技术网站整理目录
- mysql存储过程
- 实施助手功能介绍
- 利用Nodejs+Express将Markdown转换为HTML(附源码)
- js插件store(本地存储)
- SVN更新项目文件
- [译]JavaScript:如何判断值的类型
- Java开发环境搭建
- HTML5使用 JavaScript File API 实现文件上传
- JAVA企业面试题精选 Java SE 1-10
- RN vs Hybrid
- MAC 下 安装 MAMP的PHP redis扩展
- Oracle普通表转成分区表(在线重定义)