Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2012, 09:59
Интересующийся
Отправить личное сообщение для jura4x01 Посмотреть профиль Найти все сообщения от jura4x01
 
Регистрация: 11.11.2010
Сообщений: 29

Запись состояния грида в базу.
Добрый день. У меня есть вопрос - сталкивался ли кто-нибудь с проблемой записи/чтения состояния грида в базу? Если есть наработки - с радостью приму их к сведению
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2012, 10:44
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

О каких именно проблемах идет речь?
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2012, 10:56
Интересующийся
Отправить личное сообщение для jura4x01 Посмотреть профиль Найти все сообщения от jura4x01
 
Регистрация: 11.11.2010
Сообщений: 29

вот пока наткнулся на это:
http://of.com.ua/extjs/sohranyaem-ko...v-baze-dannyh/
не понятно как это прикрутить и использовать
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2012, 11:05
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Так вы маны то почитайте про state про методы getState про setState, как их правильно перегрузить и вообще зачем. И никакой базы не надо, будет писать весь этот хлам в куки (Ext3), Ext4 наверно уже узнал о существовании localStorage, а в IE8 например на куки 10кб дано, а если у вас таблица 15 столбцов и надо запомнить всех их ширину, порядок следования, метод сортировки и все такое, и таблиц поди не 1 а несколько, то кук не хватит и IE8 начинает то виснуть, то вообще удивлять. Мы стали использовать другой механизм, наши setState просто писал в специальный объект для всего приложения, а при unload постил json на вебсервер, соответственно при load страницы этот объект присылался вебом и JSON.parse его на место. А компоненты при иницаиализации, которые stateful = true искали в этом объекте информацию и своем состоянии и если находили то автоматически конфигурировалсиь
__________________
readOnly
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2012, 11:15
Интересующийся
Отправить личное сообщение для jura4x01 Посмотреть профиль Найти все сообщения от jura4x01
 
Регистрация: 11.11.2010
Сообщений: 29

спасибо за длинный ответ, но нужна БАЗА. ибо подразумевается сохранять настройки грида свои для каждого пользователя. чтобы они независимо от браузера с конкретными куками настраивались. state.stateful отсутствует в ext 3.4 поэтому мне он не подходит.
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2012, 11:26
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Ну так свой механизм напишите централизованный. Я бы реализовал как плагин. Плагин вешает на компонент необходимые события (перетаскивание столбцов, изменения их разхмера и тп) при которых пишет в какой то свой статический объект необходимые данные связанные с ID компонента. Также плагин вешает на главное окно приложения на unload обработчик который отправляет в удобном вам виде этот объект на обработчик вебсервера, который в свою очередь пишет это в базу. (Мы заморачиваться на стали и для каждого юзера делали файл username.json в котором лежал json). Также при инициализации вьюпорта с помощью специально обученного статик интерфейса плагина загружайте с веба нужный json и после загрузки продолжайте рендерить остальные компоненты. Еще плагин должен вешать на компоненты onbeforerender, в котором компоненты будут брать из статического объекта состояний нужную инфу и применять куда надо.

Когда вы заведете этот механизм, вы просто забудете о этих состояниях, просто будете записывать в какой то объект что нужно и когда угодно извлекать. Очень удобно. Еще советую перегрузить глобально Ext.Component - напишите метод который возвращает ссылку на кусок глобального объекта плагина, который относится только к текущему компоненту. И вы просто будете делать так

var myState = this.getOwnState();
myState.a = 100500;


И после перезагрузки страницы буде

this.getOwnState().a === 100500
__________________
readOnly

Последний раз редактировалось poorking, 01.02.2012 в 11:29.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax чат проблема с записью сообщения в базу данных mysql. Niksik AJAX и COMET 4 15.01.2012 13:04
Не проходит запрос в базу если в поле кириллица Sadist_dead Серверные языки и технологии 1 26.11.2011 16:12
Кнопка и ее 3 основных состояния john1992on jQuery 10 14.05.2011 21:28
Бегущая строка в строке состояния DexS Общие вопросы Javascript 0 06.05.2011 14:43
Переименовать базу данных Golovastik Серверные языки и технологии 1 30.10.2010 02:40