Разработка расширений Firefox - Хранение данных - Является ли Firefox Preferences хорошим местом?

Я разработал надстройку для Firefox, которая должна сохранять некоторые пользовательские данные на локальном компьютере. Прямо сейчас я использую функциональные возможности файловой системы, предоставляемые Firefox, для создания некоторых папок и файлов в системе пользователя.

Портативность - проблема. Я разработал его для Windows XP. Но структура папок Vista отличается (внутри данных приложения). Линукс совсем другой. Я проверяю ОС и соответственно создаю/читаю/пишу файлы. Внезапно мне нужно поддерживать Mac!

Я подумал, почему бы не сохранить данные в настройках Firefox. Я буду использовать менеджер предпочтений.

В среднем общий объем данных вряд ли превышает 100 КБ. Но дело в том, что в редких случаях данные могут быть довольно большими — в худшем случае несколько мегабайт. Итак, стоит ли сохранять его как предпочтительные значения?

Я знаю, что это не то, для чего он предназначен, но это избавит меня от многих головных болей.

Даже если это плохая идея, просто дайте мне знать о производительности или других проблемах (если таковые имеются) хранения такого большого количества данных в настройках.

Спасибо.


person Community    schedule 01.09.2009    source источник


Ответы (2)


В более новых версиях Firefox вы можете использовать SQLite для хранения данных. API SQLite в JavaScript не очень хорош, но начиная с Firefox 3.6 он становится довольно надежным (асинхронный выборка данных, привязка нескольких наборов данных и т. д.).

Вы можете открыть/создать файл в каталоге профиля, используя следующий код. Он работает на всех платформах, на которых работает Firefox:

var file = Components.classes["@mozilla.org/file/directory_service;1"]
                     .getService(Components.interfaces.nsIProperties)
                     .get("ProfD", Components.interfaces.nsIFile);
file.append("my_db_file_name.sqlite");
person Marius    schedule 13.12.2009

С помощью кода можно найти каталог профиля или расширений Firefox. Вы даже можете найти каталог вашего собственного расширения. При таком подходе переносимость не должна быть проблемой.

Инструкции можно найти в MDC (файловый ввод-вывод)< /а>.

Я бы не советовал сохранять данные в настройках. В любом случае, вместо использования голого файлового ввода-вывода вы можете заглянуть в sqlite-базы данных - вездесущность также использует их.

Ваше здоровье.

person CodeSalad    schedule 26.09.2009
comment
Кто-то может погуглить «вездесущность», как, как сообщается, сделал Маджид. Если вы сделаете это, остерегайтесь первого результата поиска, указывающего на URL-адрес Rocket.ryerson...;. Этот сайт очень подозрительный. Он пытается обмануть вас, чтобы загрузить копию надстройки, размещенную на его собственном сервере, только он создал ее так, чтобы она выглядела точно так же, как у Mozilla. Спасибо Маджиду за эту информацию. - person Bill the Lizard; 06.11.2009