Chrome扩展程序会存储大量数据

时间:2015-12-03 07:52:56

标签: javascript google-chrome-extension storage google-chrome-storage chrome-sync

我正在寻找一种在Chrome扩展程序中存储大量数据的有效方法。我有一些大约1-2mb的txt文件。 我希望我的chrome扩展程序可以在本地“缓存”它们,所以我不需要每次都获取它们。 我找到了syncFileSystem,但这仅适用于打包的应用。

  

尝试安装此扩展程序时出现警告:

     

'syncFileSystem'仅适用于打包的应用,但这是一个   扩展

在Chrome扩展程序中存储此类数据的最佳方法是什么?

的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"
    ]
}

1 个答案:

答案 0 :(得分:9)

只有WebSQLIndexedDBchrome.storage.local和HTML5 File System(沙盒文件系统)才能通过"unlimitedStorage" permission增加超过5MB的限制。

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

  

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

注意:

  • W3C不推荐使用WebSQL,而是支持较慢的IndexedDB,但我认为它将保留在Chrome中,原因很明显,由于基于SQL,它更快,更灵活。
  • chrome.storage.local是最容易使用的,但对于大型物体来说可能不是最快的,如果速度很重要,请进行一些测试。
  • 如果增益很大,请使用Zip / LZMA Javascript库压缩/解压缩文本文件。