Расширение Chrome хранит большие объемы данных
Я ищу эффективный способ хранения больших объемов данных в моем расширении Chrome. У меня есть несколько текстовых файлов, которые составляют около 1-2 МБ. Мне бы хотелось, чтобы мое расширение 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 ответ
Только WebSQL, IndexedDB, chrome.storage.local и файловая система HTML5 (изолированная файловая система) могут превысить ограничение в 5 МБ через "unlimitedStorage"
разрешение
manifest.json: "permissions": ["unlimitedStorage"]
Предоставляет неограниченную квоту для хранения данных на стороне клиента HTML5, таких как базы данных и файлы локального хранилища. Без этого разрешения расширение или приложение ограничено 5 МБ локального хранилища.
Заметки:
- W3C осуждает WebSQL в пользу более медленной IndexedDB, но я думаю, что он останется в Chrome по той очевидной причине, что он быстрее и более гибок из-за того, что основан на SQL.
chrome.storage.local
это самый простой в использовании, но он может быть не самым быстрым с большими объектами, сделайте несколько тестов, если важна скорость.- Используйте библиотеку Javascript Zip/LZMA для сжатия / распаковки текстовых файлов, если выигрыш является значительным.