@forestsheep
2019-11-26T16:02:30.000000Z
字数 1691
阅读 217
学习
html 5所支持的一种存储方式。用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。
localstorage在这里分2种:
页面原生的localstorage一般是网页制作者在编写网页js的时候使用。作用范围是以网站域名为单位。我们开发ext的时候如果想使用也是可以的,不过并不是在之前介绍的content script中注入,还需要用一种特殊方式注入到原生的页面中。现在我们还未讲到作用域的问题。所以在这里先不展开,大家只要先记得有这么一件事情即可。
作用范围是全局,不同于原生,是跨网站的。
content script中不能直接访问
localStorage.config = "abc"
localstorage里存的东西是纯字符串,这点很重要,开发中有人经常忘记这点。
由于在js中我们经常操作的对象是json object,而存localstorage时,业界通用的做法也是存json object。所以存取的时候,各要在字符串和json object做转换。
虽然你可以存任何形式的字符串,但还是建议存json object
//存
localStorage.config = JSON.stringify({
name: "Tom",
age: 13,
gender: "male"
})
//取
let config = JSON.parse(localStorage.config)
和localstorage一样都是html 5标准所支持的存储方式。不同的是,这是临时保存窗口或标签的数据,窗口和标签关闭后,会删除这些数据。
由于在实际开发中,我并没有用到过sessionstorage,可能是因为我开发的东西都是需要长期保存。个人经验这个在chrome extension开发中并不算常用。这里就先略过了。如有必要使用,网上随时都可查到资料。
该API已经过优化,可以满足扩展程序的特定存储需求。
它提供与localStorage API相同的存储功能,但有以下主要区别:
要点:
内容相对较多,且知识点游离于chrome ext开发本身。计划后期有机会再介绍。
并不是HTML5规范的一部分,但主流浏览器都支持。使用SQL语言操作,简单方便。
缺点是,主流浏览器厂商都宣称将来会不支持。所以如果是长久打算,建议放弃。
如果一定要用,也不是不可以。
使用chrome.storage存储bozuman上的个人基本情报
地址:https://bozuman.cybozu.com/settings/profile
额外:使用sync功能,使得另外一台浏览器上有相同的信息。
querySelectorAll()