摘自某本電子書,地址已經找不到了。
Chrome爲擴展應用提供了存儲API,以便將擴展中需要保存的數據寫入本地磁盤。Chrome提供的存儲API可以說是對localStorage的改進,它與localStorage相比有以下區別:
· 如果儲存區域指定爲sync,數據可以自動同步;
· content_scripts可以直接讀取數據,而不必通過background頁面;
· 在隱身模式下仍然可以讀出之前存儲的數據;
· 讀寫速度更快;
· 用戶數據可以以對象的類型保存。
對於第二點要進一步說明一下。首先localStorage是基於域名的,這在前面的小節中已經提到過了。而content_scripts是注入到用戶當前瀏覽頁面中的,如果content_scripts直接讀取localStorage,所讀取到的數據是用戶當前瀏覽頁面所在域中的。所以通常的解決辦法是content_scripts通過runtime.sendMessage和background通信,由background讀寫擴展所在域(通常是chrome-extension://extension-id/)的localStorage,然後再傳遞給content_scripts。