我正在为 Chrome 编写一个打包的应用程序。使用后台页面(而不是应用程序的主 HTML 页面)来读取/写入 localStorage 值是否有优势?
目前,用户似乎正在以我无法复制的方式丢失数据。现在,该应用程序在主 HTML 页面的 JavaScript 中读取和写入 localStorage。将应用程序更改为使用后台页面的 JavaScript 可以解决此问题吗?
我正在为 Chrome 编写一个打包的应用程序。使用后台页面(而不是应用程序的主 HTML 页面)来读取/写入 localStorage 值是否有优势?
目前,用户似乎正在以我无法复制的方式丢失数据。现在,该应用程序在主 HTML 页面的 JavaScript 中读取和写入 localStorage。将应用程序更改为使用后台页面的 JavaScript 可以解决此问题吗?
问题可能出在 localStorage 容器的上下文中。从后台脚本运行时,您将保存扩展的 localStorage。从内容脚本运行时,您保存到本地存储是针对该特定网站的。由 google.com 页面上的内容脚本编写的 localStorage.setItem( 'xx', 'yyy' ) 无法被 yahoo.com 上的内容脚本调用 localStore.getItem( 'xx' ) 读取
无论设置权限如何,LocalStorage 都限制为 5 MB。
当用户检查 chrome://settings/clearBrowserData 上的“删除 cookie 和其他网站和插件数据”时,我相信站点特定和扩展本地存储文件都被删除。也许这就是您的用户“丢失”数据的方式。
使用后台页面读取/写入 localstorage可以防止其他扩展程序损坏您的数据,这可能发生在站点域 localstorage 文件中,因为只有您的后台页面可以访问该文件。
虽然其他扩展确实可以调用您的后台页面,但它们仍然必须使用您的保存/加载功能来访问您的扩展本地存储文件。