Расширение Google Chrome: WebDB или нет?
Я создаю расширение Google Chrome, чтобы помочь с тестированием. Расширение в основном заполняет и вводит фиктивные данные.
Мне нужно как-то хранить эти фиктивные данные.
Фиктивные данные не изменятся, поэтому жесткое кодирование приемлемо.
Каков наилучший способ сделать это?
(например, 2000 мужских имен, 2000 женских имен, 4000 фамилий, 5000 названий компаний, 5000 адресов электронной почты, 50 названий стран, все города этих стран, локализованные форматы телефонов для всех 50 стран и т. д.)
как видите, это довольно значительный объем данных.
Мое расширение уже запрашивает неограниченное хранилище.
Должен ли я использовать веб-БД? или целая куча массивов? или, может быть, объект, содержащий массивы?
2 ответа
Хранить его в массиве - неплохая идея. Вы можете создать отдельный data.js
файл, который содержит все инициализации массива и затем просто включает его в фоновую страницу как обычный скрипт.
Другой возможностью будет localStorage (но вам нужно как-то его инициализировать, что означает, вероятно, чтение из массива и сохранение в хранилище, что делает localStorage бесполезным дополнительным шагом). localStorage более полезен, когда вы хотите сохранить созданные пользователем данные между обновлениями расширений.
Я думаю, что WebDB был бы излишним, плюс вам все равно нужно как-то его инициализировать, что снова означает чтение из массива. Единственное преимущество состоит в том, что вы сможете выполнять запросы к данным, но реализация js в Chrome имеет множество методов манипулирования массивами, поэтому вы также можете эмулировать запросы к массивам.
Я думаю, что в вашем случае, если все данные определены заранее и никогда не изменяются, массивы были бы лучшим решением.
Для расширения Google Chrome вы должны использовать базу данных Web SQL или IndexDB. Вы можете найти разницу здесь: http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/