超越Cookie:当今的客户端数据存储技术
local storage 的另一个用例是在多个选项卡之间同步数据。通过为 'storage' 变乱添加侦听器,你可以在另一个选项卡或窗口中更新数据。
仅当在另一个文档中修改当地或会话存储时才会触发此变乱。也就是说,你无法在当前赏识器选项卡中侦听 storage 的变动。不幸的是,制止撰写本文时,存储变乱监听器尚未在 Chrome 上获得支持。 那么localStorage 和 sessionStorage 之间有什么区别呢?与 cookie 差异,Web Storage API 没有逾期或最大限期成果。假如行使 localStorage,除非手动删除,不然数据将无期限保存。你可以通过运行 localStorage.removeItem('key') 来删除单个键的值,可能通过运行 localStorage.clear() 破除全部数据。 假如行使 sessionStorage,则数据将仅一连到当前会话竣事。假如你没有配置最大时刻或逾期,它将被视为与 cookie 保持的方法相似。在任何一种环境下,假如用户行使隐身,当地存储都不会在会话之间保存数据。 IndexedDB 假如 cookie 和 localStorage 都不切合你的要求,尚有另一种选择:IndexedDB,一个赏识器内置的数据库体系。 当 localStorage 同步执行全部要领时,IndexedDB 会异法式用它们。这将会应承会见数据而不会阻塞别的代码。当你处理赏罚大量也许会见价钱奋发的代码时,这很是有效。 IndexedDB 在其存储的数据范例方面也具有更大的机动性。固然 cookies 和 localStorage 仅限于存储字符串,但 IndexedDB 可以存储可以通过“布局化克隆算法”复制的任何范例的数据。这包罗 Object、 Date、 File、 Blob、 RegEx 以及更多范例。 机能和机动性增进的弱点是 IndexedDB 的 API 更初级且更伟大。荣幸的是有很多库可以办理这个题目。 localForage 为 IndexedDB 提供了一个更简朴的相同 localStorage 的 API。 PouchDB 提供了一个可以离线的存储 API,可以与在线 CouchDB 数据库同步。 idb 是一个小型库,具有更简朴的基于 promise 的 API。 Dexie 添加了更强盛的查询 API,同时保持了精采的机能。按照你的行使环境尚有很多选择。 Cache API 另一种用于耐久数据的专用器材是 Cache API。固然它最初是为 service workers 建设的,但它可用于缓存任何收集哀求。 Cache API 果真了 Window.caches,它提供了生涯和检索相应的要领,应承你生涯可永久往后会见的 Requests 和 Responses 对。 譬喻,假如你想在从 API 哀求相应之前搜查赏识器的缓存以获取相应,则可以执行以下操纵:
第一次运行代码时,它将缓存相应。随后每次城市缓存哀求,而且不会发出收集哀求。 总结 在赏识器上存储数据的每种要领都有其本身的用途。假如信息很小,很敏感,而且也许在处事器上行使,那么 cookie 就是最佳选择。假如要生涯更大且更不敏感的数据,Web Storage API 也许是更好的选择。 假如你规划存储大量布局化数据,IndexedDB 很是棒。 Cache API 用于存储来自 HTTP 哀求的相应。按照你的必要,有许多器材可供行使。 【编辑保举】
点赞 0 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |