powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Хранение состояния плагинов
5 сообщений из 5, страница 1 из 1
Хранение состояния плагинов
    #38371279
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет! Когда проекты начинают двигаться в стороны RIA, это обуславливает создание плагинов, у которых можно выделить набор пользовательских настроек, предпочтений и всего прочего -- состояние плагина. И это состояние хорошо где-нибудь хранить. На данный момент мне известны пять решений этой проблемы:
    Хранить состояние частями или целиком в пользовательских предпочтениях (APEX_UTIL.%_preference, WWV_FLOW_PREFERENCES$). + использование встроенного API, что означает отсутствие каких-то дополнительных шагов по установке решений; +/- состояние хранится на сервере; - предпочтения превращаются в помойку данных; - ограниченная длина данных в строке (4000 байт). Один из предпочитаемых мной способов, если плагин одиночный, не объёмный, и состояние описывается десятком небольших закодированных в строки JSON-объектов. Сохранять состояние в клиентских печеньках. + даже ленивые написали своё API для работы с ними; +/- состояние хранится на клиенте; - хлам в печеньках; - ограниченный размер данных в печеньках как для одного экземпляра, так и на домен; - все минусы, связанные с печеньками. Local Storage . Особо не работал с этой фишкой HTML5, потому оценка не окончательная. + размер побольше; + наличие API в популярных JS-фреймворках; +/- хранение без обращения к серверу. Хранение в собственной таблице всего состояния, представленного в одном из популярных форматов (JSON, XML), в CLOB-поле. + на стороне сервера запись и выдача состояния достаточно просты; +/- состояние хранится на сервере; - работа с частью состояния сложнее других вариантов; - для отправки состояния с клиента придётся всё равно резать состояние на части и склеивать его на сервере; - предполагает создание дополнительных объектов БД (таблица и API для работы с ней). Хранение в наборе таблиц, описывающих сущности и связи нормализованных состояний. + все плюсы нормализации с удобством запросов и DML; +/- состояние хранится на сервере; - сопутствующие расходы на создание API, продумывание модели и её изменение при добавлении/изменении плагинов; - всё это придётся создавать на каждом экземпляре APEX с правами и прочим. Всё больше склоняюсь к этому способу.
В хранении состояния на сервере или на клиенте есть как плюсы так и минусы. Если сервер не участвует, то не нужно его ставить в известность об изменении состояния теми же AJAX-вызовами и получать это состояние в ответ при создании страницы. С другой стороны, стоит сменить машину, браузер или даже неаккуратно почистить кэш -- прощайте, настройки под себя, любимого пользователя. А хранение состояний на сервере подразумевает обращения к нему для сохранения изменений либо по желанию пользователя, либо автоматически. Первое подразумевает, что пользователь может забыть сохранить настройки, второе -- задалбывание сервера через AJAX... В общем, создание своего велосипеда по чертежам IR. :) APEX Team, как видим, предпочла два набора таблиц для хранения состояния: в рамках сессии и сохранённые пользовательские настройки. Это всё длинная преамбула к короткому вопросу: кто какие способы использует для хранения состояний плагинов и на какие грабли наткнулся? Поделитесь, пожалуйста, не заходя за рамки коммерческой тайны. Спасибо за внимание. ------------------------------------------------------- When I say "RTFM" or "STFF" or "STFW", the third letter means "Following" or "Fine"...
...
Рейтинг: 0 / 0
Хранение состояния плагинов
    #38371832
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLer,

Я за куки, если работать будет с броузерами, которые не поддерживают Local Storage и за Local Storage если мы можем влиять на выбор броузера.
Абсолютно бессмысленно нагружать сервер данными, которые нужны только клиенту.
...
Рейтинг: 0 / 0
Хранение состояния плагинов
    #38371834
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
З.Ы.
Приведите пожалуйста пример данных, которые нельзя сохранить в куках.
...
Рейтинг: 0 / 0
Хранение состояния плагинов
    #38371847
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под пользовательскими настройками понимаются например цвет фона страницы?
...
Рейтинг: 0 / 0
Хранение состояния плагинов
    #38374223
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В последнее время стали склоняться к 5-му варианту, до этого использовали кукки. Настройки, отвечающию за отображение на странице просто через htp.p выводится при загрузке страницы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Хранение состояния плагинов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]