Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№107-04-2009 20:31:47

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.6

Какой способ менее кривой для создания хранилища ?

Доброй ночи, уважаемые форумчане.

Вот задался вопросом, как менее криво можно изобразить хранилище данных в тулбаре? У меня тулбар получает данные с сервера, а поскольку пользователь может запусть 2 Firefox - тулбара станет 2... .а копия данных должна быть одна. Сейчас у меня каждый тулбар имеет свое хранилище и после получения данных тулбар посылает уведомление обсерверам остальных тулбаров (в других процессах фф), передавая им данные. При изменении \ удалении данных тулбар сообщает всем остальным своим копиям что сделать надо ;) вообщем такой велосипед получился и он мне не нравится. Скажите, есть ли способы сделать что-то общее одно?

Отсутствует

 

№208-04-2009 02:33:40

lemax
Участник
 
Группа: Members
Зарегистрирован: 12-11-2008
Сообщений: 36
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Если данных мало, и они не накапливаются, то nsIPrefBranch (что то вроде реестра виндоус, только для всех операционных систем). Записи в этом "реестре" можно увидеть по адресу about:config

Иначе: nsILocalFile. Просто записывать в общий фаил.

Отредактировано lemax (08-04-2009 02:34:05)

Отсутствует

 

№308-04-2009 09:54:51

Forest
Участник
 
Группа: Members
Откуда: Обнинск
Зарегистрирован: 05-04-2005
Сообщений: 1778
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Что за данные-то хоть?


---  ---

Отсутствует

 

№410-04-2009 18:58:48

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Chrome 1.0

Re: Какой способ менее кривой для создания хранилища ?

lemax пишет

Если данных мало, и они не накапливаются, то nsIPrefBranch (что то вроде реестра виндоус, только для всех операционных систем). Записи в этом "реестре" можно увидеть по адресу about:config

Иначе: nsILocalFile. Просто записывать в общий фаил.

Данных не очень много, но реализовывать свою БД на файлах желания не много. Поднимать sqlite тоже не хочется, т.к. данные быстро устаревают и нуждаются в динамичном обновлении ;(

Forest пишет

Что за данные-то хоть?

Да вообще теоретический вопрос. Сейчас данные - урлы \ ключи-хеши \ информация о страницах по урлам \ статистика всякая. Ну и нелогично когда статистика в одном тулбаре одна, а в соседнем окне другая ;(

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

Отсутствует

 

№510-04-2009 22:26:37

Forest
Участник
 
Группа: Members
Откуда: Обнинск
Зарегистрирован: 05-04-2005
Сообщений: 1778
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Может имеет смысл покопать в сторону расширений, которые ставятся в папку приложения (и доступны во всех профилях)?
Ведь по идее у них как раз общее хранилище должно быть доступно (но не уверен).


---  ---

Отсутствует

 

№611-04-2009 13:59:29

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

https://developer.mozilla.org/en/Workin … ta_sharing

Отредактировано Crazy-EyE (11-04-2009 13:59:40)

Отсутствует

 

№711-04-2009 16:26:07

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Chrome 1.0

Re: Какой способ менее кривой для создания хранилища ?

Forest пишет

Может имеет смысл покопать в сторону расширений, которые ставятся в папку приложения (и доступны во всех профилях)?

Это несколько не то. Т.е. расширения то доступны, но данные в них не общие.

pi.v.vitaly пишет

Попробуйте посмотреть расширение Clippings.

Посмотрел, автор сделал, как предлагает Crazy-EyE.

Crazy-EyE
Посмотрел\почитал. Примерно это меня и интересует, однако не совсем подходит в моем случае. Как я понимаю XPCOM компоненты регистрируются в момент установки расширения, подхватываясь браузером из папки /components? Не знаете, есть ли возможность зарегистрировать компонент в любой момент из любой папки и пользоваться ?

Отсутствует

 

№811-04-2009 18:25:00

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Не знаете, есть ли возможность зарегистрировать компонент в любой момент из любой папки и пользоваться ?

Такой возможности нет, и она обычно не нужна. Можно подгружать JS-скрипты через mozIJSSubScriptLoader.

А зачем вам это нужно?

Отсутствует

 

№911-04-2009 19:45:56

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Chrome 1.0

Re: Какой способ менее кривой для создания хранилища ?

Crazy-EyE пишет

Не знаете, есть ли возможность зарегистрировать компонент в любой момент из любой папки и пользоваться ?

Такой возможности нет, и она обычно не нужна. Можно подгружать JS-скрипты через mozIJSSubScriptLoader.

А зачем вам это нужно?

Хочу забиндить XBL на кнопочку, и чтобы она сразу подняла глобальное хранилище для других копий браузера (если их вдруг начнут запускать) или приципилась уже к существующему хранилищу. Вся "прелесть" в том чтобы можно было подключать XBL подтянутые из сети (изображаю "плагины" для расширений). Плагины могут быть разные и сразу не угадаешь какие будут... поэтому одинаковые хранилища для всех не подойдут. Вот ищу как это сделать без XPCOM или возможность как это сделать налету.

Отсутствует

 

№1011-04-2009 20:20:54

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Тогда можно просто сделать один большой общий XPCOM-компонент, который будет управлять всеми хранилищами (просто JS-объектами).

Я бы взял код отсюда, раскомментировал строчку

Выделить код

Код:

this.wrappedJSObject = this;

а в плагине делал так:

Выделить код

Код:

var sharedObject = Components.classes["..."].getService().wrappedJSObject;
if (!sharedObject.PLUGIN_NAME) {
    // Init
    sharedObject.PLUGIN_NAME = {
        storage: {}
    };
}
var storage = sharedObject.PLUGIN_NAME.storage;

Отсутствует

 

№1112-04-2009 07:29:57

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Какой способ менее кривой для создания хранилища ?

Как я понимаю XPCOM компоненты регистрируются в момент установки расширения, подхватываясь браузером из папки /components? Не знаете, есть ли возможность зарегистрировать компонент в любой момент из любой папки и пользоваться ?

Есть такая возможность.

Вся "прелесть" в том чтобы можно было подключать XBL подтянутые из сети (изображаю "плагины" для расширений). Плагины могут быть разные и сразу не угадаешь какие будут... поэтому одинаковые хранилища для всех не подойдут. Вот ищу как это сделать без XPCOM или возможность как это сделать налету.

Т. е., непривилигерованный xbl должен "поднимать" хранилище, реализованное привилегированным кодом ?
Нет, без XPCOM, скорее всего, никак.

Хотя, если код "плагинов" не обязан быть привилегированным, в FF3 и старше вроде есть какие-то средства для хранения данных web-приложений.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№1212-04-2009 15:01:48

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Есть такая возможность.

Можно из произвольной директории, но Firefox все равно придется перезапускать

Отсутствует

 

№1312-04-2009 15:04:44

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Какой способ менее кривой для создания хранилища ?

Crazy-EyE

Можно из произвольной директории, но Firefox все равно придется перезапускать

Ошибаетесь, можно и без перезагрузки.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№1412-04-2009 15:21:02

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Какой способ менее кривой для создания хранилища ?

Через nsIComponentRegistrar? Может, и можно. Только нужно ли?

P.S. После таких утвердительных заявлений обычно ожидается ссылка.

Отсутствует

 

№1512-04-2009 15:33:01

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.0
Веб-сайт

Re: Какой способ менее кривой для создания хранилища ?

Через nsIComponentRegistrar?

Верно.

После таких утвердительных заявлений обычно ожидается ссылка.

: )
Очень несложно поставить эксперимент, чтобы проверить. Но гугл недалеко, если что.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]