Я всё таки решил закончить мысль.
Я пока отлажу в сторону архитектуру, и сосредоточусь на ином вопросе.
Для начала, кто сказал что надо рендирить список мудаков и для клиента и для сервера. Помоему данное дублирование неразумно, это двойная работа при планировании, при разработке , при отладке, при доработке в следующих версиях.
Предлагаю рассмотреть два случая.
Я пытаюсь найти способ рендерить информацию в хтмл только в одном месте, а не в двух.
1й) Рендерим json для клиента.
Это значит что на клиенте будет скрипт знающий какую ручку дёрнуть, скрипт будет регулярно запрашивать данные с сервера, соответственно на сервере будет контролёр который будет уметь эти данные отдавать.
Больше нечего не надо ! Всё что нужно это засунуть скрипт-виджет в шаблон. Первую порцию данных скрипт запросит сам,а значит делать дублирующий рендер этой же информации на сервере не нужно. Вся работа сервера сведётся к возвращению данных.
Всем хорош этот способ, вот только данные для клиентских плагинов, поисковики учитывать не будут
Воплатить это с одинаковым успехом можно совершенно любым архитектурным паттерном.
2й) Рендерим html и для сервера, и для клиента.
в этом случае подразукмевается что данные на сервере превращаются в html а не JSON или XML.
Такой рендер удобен тем что он одинаков как для клиентской, так и для серверной части.
То есть, есть код который генерирует хтмл, который вы потом используете по усмотрению передавая его на клиент по ajax, либо вставляя шаблон.
Данный подход удобно реализуется паттерном HMVC.
Реализуем архитектурным паттерном HMVC.
Когда контролёр "A" вдруг обнаруживает что ему нужен результат работы контролёра "B", он просит контролёр "B" вернуть результат. Когда скрипт обновляет данные регулярно,то он обращается к контролёру "B" напрямую, get запросом. И вставляет HTML в нужное место.
Реализуем научив mvc вкладывать один view внутрь другого view.
Когда view "A" вдруг обнаруживает что ему внутри нужен отрендеренный "B", он рендерит B и вставляет его в себя. Когда клиентский скрипт нуждается в обновлении данных он запрашивает view "B" напрямую.
Если вы рендерете хтмл на стороне сервера то при таком подходе решается проблема с поисковиками, однако теряется гибкость клиентских скриптов.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 17.06.2012 в 10:01.
|