HTML5 sessionStorage 或 chrome.storage 用于 Chrome 扩展?
HTML5 sessionStorage or chrome.storage for Chrome Extension?
我有一个 Chrome 扩展,它只是一个内容脚本。我想保留一些在内容脚本中计算的数据,这样我就可以在浏览时轻松访问它,而不必在每个页面上重新计算它。我只需要为会话存储数据。
我正在查看 chrome.storage API,但数据似乎会在会话结束后保留在那里。我以前有使用 HTML5 sessionStorage 的经验,但我觉得我应该在这里利用 Google 的 API。
欢迎任何意见,谢谢!
在内容脚本中,使用 sessionStorage 将访问和修改该站点的 sessionStorage,而不是您的扩展。
如果您希望它可用于其他网站上的内容脚本并避免破坏网站,则必须使用 chrome.storage.local。
没有自动清除 chrome.storage.local 数据,但您可以创建一个在启动时清除它的事件页面。
manifest.json:
"background": { "scripts": [ "background.js" ], "persistent": false }
background.js:
chrome.runtime.onStartup.addListener(function() {
chrome.storage.local.clear()
})
从 Chrome 102+ 开始,现在有一个基于会话的存储 API 用于 Chrome 扩展。它将数据存储在内存中。
https://developer.chrome.com/docs/extensions/reference/storage/#property-session
我有一个 Chrome 扩展,它只是一个内容脚本。我想保留一些在内容脚本中计算的数据,这样我就可以在浏览时轻松访问它,而不必在每个页面上重新计算它。我只需要为会话存储数据。
我正在查看 chrome.storage API,但数据似乎会在会话结束后保留在那里。我以前有使用 HTML5 sessionStorage 的经验,但我觉得我应该在这里利用 Google 的 API。
欢迎任何意见,谢谢!
在内容脚本中,使用 sessionStorage 将访问和修改该站点的 sessionStorage,而不是您的扩展。
如果您希望它可用于其他网站上的内容脚本并避免破坏网站,则必须使用 chrome.storage.local。
没有自动清除 chrome.storage.local 数据,但您可以创建一个在启动时清除它的事件页面。
manifest.json:
"background": { "scripts": [ "background.js" ], "persistent": false }
background.js:
chrome.runtime.onStartup.addListener(function() {
chrome.storage.local.clear()
})
从 Chrome 102+ 开始,现在有一个基于会话的存储 API 用于 Chrome 扩展。它将数据存储在内存中。
https://developer.chrome.com/docs/extensions/reference/storage/#property-session