Где JavaScript находится в шаблоне MVC веб-приложения? - PullRequest
13 голосов
/ 18 апреля 2011

Я все еще не понимаю, где код JavaScript находится в шаблоне MVC при создании веб-приложения.Я думал, что это работает так

  • Модель - это база данных и классы, необходимые для ввода / вывода данных.
  • Контроллер - это классы, в которых я пишу свою логику, то есть сервлеты Java, которыепринять запрос Ajax и затем выполнить вызов к базе данных;
  • Представление - это страница JSP, которая возвращается к запросу Ajax через сервлет (мой контроллер)

, поскольку JavaScriptкод скомпилирован в браузере, я считаю его частью представления, но он обрабатывает вводимые пользователем данные, делает запросы к серверу на основе этих событий и затем возвращает данные на страницу, так что же это будет делать в части контроллера?

Кроме того, что это означает, когда они ссылаются на модель предметной области в MVC?

Ответы [ 5 ]

5 голосов
/ 18 апреля 2011

JavaScript будет в первую очередь связан с пользовательским интерфейсом; ваш взгляд делает ajax-запрос к контроллеру. Контроллер не делает ajax-запрос; ни модель. Для всех целей и задач ajax-запрос ничем не отличается от обычного запроса; просто браузер не зависает, пока ваш ответ не будет возвращен.

JavaScript также выполняется в контексте вашего клиента, вне области вашего сервера, поэтому он должен перейти в представление.

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

MVC это просто шаблон.Сам код JavaScript может реализовать этот шаблон, поэтому я не думаю, что он вписывается в какую-то другую часть шаблона вашей серверной инфраструктуры.Проверьте Backbone для хорошего примера использования MVC в коде JavaScript.

Вы можете смоделировать свой код JavaScript на основе аналогичных концепций, с помощью которых вы моделируете код на стороне сервера.Сам код JavaScript будет обслуживаться через представление вашего серверного приложения, но если вы только не добавляете приятные ощущения с помощью кода JavaScript (а вы этого не делаете), тогда код JavaScript действительно является собственной сущностью и не обязательновписывается в вашу серверную парадигму MVC.

Попробуйте отделить JavaScript-код от любой серверной части.Просто считайте это «дополнением», которое, если оно отключено в браузере, не помешает вашему приложению работать.Я просто добавляю некоторые тонкости, чтобы улучшить взаимодействие и т. Д. Как вы на самом деле моделируете код JavaScript, зависит от вас (но я настоятельно рекомендую Backbone)

Можно также сделать Rich-интерфейс только в javascript-поддержке.источником данных.В этом случае, опять же, javascript будет отвечать за поддержку моделей, представлений и контроллеров.

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

1 голос
/ 18 апреля 2011

JavaScript-код является частью View.Представление - это то, что выводится в браузер, и хотя код Javascript автоматически не имеет визуального вида, его можно использовать для изменения DOM.

Когда вы начинаете говорить об Ajax, легковоспринимайте код JavaScript как нечто другое в обычном потоке вещей, но вы должны прервать процесс Ajax-запроса, чтобы увидеть, что это просто еще один HTTP-запрос.

Некоторые люди будут иметь контроллер только для запросов Ajax, в то время как другие могут передавать аргумент контроллеру, изображающему запрос Ajax, для изменения вывода.

В любом случае, код JavaScript находится в View, и вам может понадобиться изучить некоторые другие стратегии проектирования, касающиеся Ajax, в настройке MVC.

1 голос
/ 18 апреля 2011

Ник, мой личный опыт работы в MVC, работа с Zend или Spring , я думаю, что код JavaScript будет рассматриваться как часть представления, поскольку код JavaScript помогает представлениюнепосредственно взаимодействует с видом.Отправка и получение данных через Ajax может рассматриваться как запрос.

0 голосов
/ 18 апреля 2011

Если вы используете JavaScript для работы с DOM, то да, это часть View.Но вы все равно можете использовать JavaScript на стороне сервера, в этом случае он может быть частью кода, связанного с бизнесом.

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