Как библиотеки js mvc, такие как spine, backbone, jsmvc, интегрируются в основанную на сервере инфраструктуру MVC, такую ​​как литий или zend? - PullRequest
6 голосов
/ 22 апреля 2011

Мой конкретный вопрос заключается в том, что мне нужны ссылки на ссылки, чтобы я мог выучить / исследовать название вопроса, а не разжигать споры о функциях или о том, какой из них лучше. Я нашел jsMVC , позвоночник и EJS , но не знаю, какое место они занимают в шаблоне MVC. Разве они не просто видят сами себя, так как обрабатывают рендеринг? Значит ли это, что MVC-клиент похож на шаблон с V-образным MVC-сервером? Были бы полезны ссылки, которые предоставляют справочную информацию и теорию о том, как эти клиентские библиотеки работают внутри / с традиционной серверной структурой.

Спасибо!

Когда я писал это, я читал этот ответ , и этот тип ответа помогает, больше похоже на это со ссылками на ссылки.

Ответы [ 2 ]

9 голосов
/ 22 апреля 2011

Клиентская сторона MVC может обрабатывать весь стек MVC. Если вы используете серверную и клиентскую MVC, то дублируете ваши модели и маршруты.

Клиентская сторона MVC в основном позволяет соединять ваш сервер и клиент вместе. Почему ваш сервер должен отправлять просмотры? Почему бы не отправить модель в формате json и загрузить ее в модель на стороне клиента, чтобы клиент отобразил это представление.

Вы можете даже пойти дальше с маршрутизацией. Почему маршрутизация обрабатывается сервером? Клиент может сделать это. Просто предоставьте клиенту доступ к вашей базе данных RESTful, и вам не понадобится серверный MVC.

Конечно, если вы хотите поддерживать не-javascript, вам нужен MVC на стороне сервера.

Лично я использую тяжелые настройки клиента / тяжелого сервера. Я использую весь серверный MVC для загрузки первой страницы. С тех пор клиент обновляет себя, чтобы использовать клиентский MVC, только если это возможно с javascript. Если это невозможно, он продолжает использовать серверную часть MVC.

Этот вид разработки значительно упрощается благодаря наличию SSJS, поэтому ваши модели, коллекции и представления являются общей кодовой базой и поддерживаются только в одном месте.

3 голосов
/ 23 апреля 2011

Использование инфраструктуры MVC на стороне клиента может быть полезно для организации кода при работе с очень большими, Ajax-зависимыми приложениями.Рассмотрим уровень модели на стороне клиента, который последовательно взаимодействует с одной или несколькими службами, предоставляемыми отдельными приложениями в сервис-ориентированной архитектуре.Отдельные поставщики услуг могут реализовывать свои сервисы с MVC или нет, но есть преимущество в том, что клиентские модели используют эти данные.

Имейте в виду также, что Javascript-фреймворки - будь то jQuery, MootoolsNode.js - собирается реализовать управляемый событиями рабочий процесс управления, где одно событие может инициировать обратные вызовы, которые каскадно переходят в другие обратные вызовы.Как правило, на стороне сервера, по крайней мере, в том, что касается цикла HTTP-запроса-ответа, мы хотим создать дискретные атомарные задачи, которые генерируют быстрый и перенаправляемый ответ и могут инициировать или ставить в очередь какое-то другое асинхронное событие на сервере, потому что ответблокирует пользователя от выполнения другого запроса и продолжения его рабочего процесса.Это не так для Javascript на стороне клиента.

Добавление полной версии MVC на стороне клиента в стек, когда вы уже используете серверную часть инфраструктуры MVC, может быть излишним и может привести к дублированию усилий.Это можно сделать правильно.Специализируйте свой серверный код в управлении доступом и операциях CRUD, возвращая JSON вместо представлений HTML.Специализируйте свой код на стороне клиента для обработки представлений и обработки событий с использованием облегченных моделей, ожидающих хранилище данных JSON с обычной маршрутизацией ReST-ful.Используйте их для того, на что они оба хороши, чтобы получить максимальный пробег.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...