суббота, 12 февраля 2011 г.

Zeta 3 - решена проблема профилей пользователей

В Zeta2 практически отсутвовали как таковые профили пользователей, практически ничего не подстраивалось под пользователя. Основаная причина - отсутствие общего механизма взаимодействия JavaScript<->Server в части унифицированного обмена данными о преференциях пользователей.

В Zeta3 инфраструктура унифицирована как по организации хранения так и по организации доступа.

  • На уровне ядра:
    • созданы удобные утилиты доступа к папке profile и записи, навигации, чтения в ней.
    • создана ингфраструктура общего хранения профилей (может использоваться не файловая система) в этом случае поддерживаются только операции чтение - запись
  • На уровне контроллеров
    • во все контроллеры внедрены защищенные методы записи и чтения в профиль
    • планируется - организация доступа к профилю из вьюх, пока вопрос не решен
    • добавлен публичный контроллер profileController с методами load/save для запросов на открытие и сохранения файлов профиля через AJAX
  • На уровне клиента
    • создан скрипт comdiv.profile.js, экологический как для загрузки в рут, так и в eval режиме
    • обволакивает profileController , поддерживает автосохранение профилей, в качестве формата хранения использует JSON
Теперь работа с профилем на уровне клиента стала элементарной:

var profilerepos = Ajax.from(siteroot+"/scripts/comdiv.profile.js").eval();
var myprofile = profilerepos.load('myprofile',{val1:'default1',...}); //нуказываем имя файла профиля и настройки по умолчанию
myprofile.autoSave(10); //включаем, если надо автосохранение
...
myprofile.data.val1 = 23;
myprofile.data.val2 = 'xxxx';
...
//максимум через 10 секунд новые значения будут сохранены если они в действительности изменились
//и при следующей загрузке в профиле уже будут новые значения

Комментариев нет:

Отправить комментарий