Скорее всего, мне нужна какая-то экспертная оценка того, что я делаю и насколько правильно я делаю. Всё вроде работает, но мне кажется, что получается слишком громоздко.
Опишу проект вкратце:
Есть рабочий стол: верхнее меню с выпадающими подразделами, левый грид (в котором выбирается объект отмеченый маркером на карте), гугль карта (с маркерами, список которых находятся в левом гриде), правая панель-аккордеон (в котором расположенны данные о выбранном объекте, разделеные на информационные блоки) и нижняя панель (футер с копирайт текстом). Всё это растянуто на весь экран через Viewport.
Данные в каждый элемент вгружаются через AJAX посредством запросов на XML REST сервис.
Есть ДЕМО-версия этого проекта у меня на машине, который я не хочу шарить в паблик, но мог бы показать в привате.
Проблемы:
1. Обработка ошибок AJAX: Самый тривиальный пример - это не валидный XML ответ (например PHP взял, да вывел WARNING во время обработки запроса. Так по идее не должно быть, но иногда случается. Отключать warning не выход, должна быть нормальная валидация XML). Я подпиливал XMLReader (переписал функции readResponse & read) - но мне кажется - это скорее work-around чем решение проблемы. Надеюсь, что есть более элегантное решение этой проблемы. Самое интересное, что для JSON такой проблемы судя по перепискам в форумах не сущевствует.
2. Есть справочные данные (например юзеры), которые показываюстся в элементе Window. Это обычный Grid + Form в таблице выбираем, в форме редактируем. Есть проблема с обработкой ошибок: Например если REST запрос не прошёл - надо показать сообщение об ошибке, но не показывать окно с таблицей. НО! Т.к. grid и её store находятся в окне - это сложно, извращаться с нивидимыми окнами тоже не хочется. Можно было бы заврапить окно и всё остальное в отдельный объект и store грузить до окна, но хотелось бы услышать другие варианты, может даже есть какие-то бест-практисы.
3. Можно как-то написать свои индикаторы загрузки (пока AJAX запрос выполняется) того или иного виджета и разместить её где-нибудь на футере?
4. Есть ли способы для комбобоксов задать значение через id, если они грузятся из storage? Это нужно для тех же справочных таблиц, чтоб на формах обновить значения. Я не нашёл примеров
5. Если вертикальная область для аккордеона не достаточна, то элементы уходят за экран и их нереально скролить. И вообще есть проблемы с оптимизацией под разные размеры экранов.
Вопросов ещё много, в том числе и по внешнему виду многих виджетов, но нужен именно опытный человек, который уже достаточно находился по граблям. Готов в зависимости от созданного напряга компенсировать затраченное время пивом или деньгами. А если всё сложится удачно и человек сможет вернуть мне веру в то, что всё можно сделать элегантно, то смогу делегировать UI часть проекта на контрактной основе (проект долгосрочный, работы много, моя роль в этом проекте: Dev Lead.). Я боюсь что если нагорожу сейчас слишком криво, потом намного дороже исправлять будет.
Сообщение изменено: netknight (16 марта 2010 - 17:14 )