Показать сообщение отдельно
  #6 (permalink)  
Старый 01.02.2012, 12: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 в 12:29.
Ответить с цитированием