2

我正在寻找一种高效的方式来存储我的Chrome扩展中的大量数据。我有几个大约1-2mb的txt文件。 我想让我的Chrome扩展在本地“缓存”它们,所以我不需要每次都抓取它们。 我发现syncFileSystem但这只适用于打包应用程序。Chrome扩展存储大量数据

当试图安装这个扩展有警告:

“syncFileSystem”只允许打包应用程序,但是这是一个 扩展。

什么是在铬扩展中存储这种数据的最佳方式是什么?

的manifest.json

{ 
    "manifest_version": 2, 
    "name": "__MSG_name__", 
    "version": "1.0", 
    "default_locale": "en", 
    "description": "__MSG_description__", 
    "icons" : { 
     "16" : "img/logo_enabled_16.png", 
     "48": "img/logo_enabled_48.png", 
     "128": "img/logo_enabled_128.png" 
    }, 
    "browser_action": { 
     "default_icon": "img/logo_enabled_48.png", 
     "default_title": "__MSG_browser_action_title__", 
     "default_popup":"options.html" 
    }, 
    "background": { 
     "scripts": [ 
      "js/chrome.js", 
      "js/filter.js", 
      "js/background.js" 
     ], 
     "persistent": true 
    }, 
    "content_scripts": [{ 
     "matches": [ 
      "http://*/*", 
      "https://*/*" 
     ], 
     "js": [ 
      "js/docReady.js", 
      "js/content.js" 
     ] 
    }], 
    "offline_enabled":true, 
    "options_ui": { 
     "chrome_style": true, 
     "page":"options.html" 
    }, 
    "permissions": [ 
     "activeTab", 
     "tabs", 
     "webRequest", 
     "webRequestBlocking", 
     "webNavigation", 
     "storage", 
     "syncFileSystem", 
     "http://*/*", 
     "https://*/*" 
    ], 
    "short_name": "__MSG_shortName", 
    "minimum_chrome_version":"45.0.2454.101", 
    "web_accessible_resources":[ 
     "css/bootstrap.min.css", 
     "js/jquery.min.js", 
     "js/chrome.js", 
     "js/bootstrap.min.js" 
    ] 
} 
+0

可以在问题中包含清单文件? – guest271314

+0

我已经添加了我的清单文件 – SheperdOfFire

回答

8

只有WebSQLIndexedDBchrome.storage.local和HTML5 File System(沙盒文件系统)可以通过"unlimitedStorage" permission增长近5MB的限制。

的manifest.json:"permissions": ["unlimitedStorage"]

提供无限配额用于存储HTML5客户端数据,例如数据库和本地存储的文件。没有此权限,扩展程序或应用程序被限制为5 MB的本地存储空间。

注:

  • 的WebSQL是由W3C有利于较慢的索引资料的过时,但我认为它会留在Chrome原因很明显,它的速度更快,更灵活,由于是基于SQL的。
  • chrome.storage.local是最容易使用的,但它可能不是最快的大对象,如果速度很重要,请做一些测试。
  • 如果收益显着,则使用Zip/LZMA Javascript库来压缩/解压缩文本文件。
+0

不知何故,您完全省略了'chrome.storage'。请注意'localStorage'也可用,并且将增长到5 Mb以上。 – Xan

+1

@Xan:'localStorage'不会增长,请参阅https://crbug.com/58985至于'chrome.storage.local'你是对的。 – wOxxOm

+0

在那个bug中有一个有趣的标签'not-extensions'。但是,是的,从文档中的其他地方确认它不会影响'localStorage',对此抱歉。 – Xan