Использование Javascript в приложении MVC - PullRequest
1 голос
/ 25 октября 2010

Я помощник в курсе, где студенты реализуют веб-приложение (это сайт вопросов и ответов, похожий на stackoverflow) с помощью Play!фреймворк.Это основанная на Java инфраструктура, основанная на шаблоне MVC.Модель и контроллер написаны на Java, где представление написано на HTML / CSS и некоторых расширениях, которые инфраструктура предоставляет для доступа к информации о модели.

Вопрос, который недавно возник, заключается в том, сколько javascript можно использовать.чтобы изменить что-то в модели (например, голосовать, комментировать и т. д.), чтобы шаблон MVC не нарушался слишком сильно.Или следует избегать всех функций Javascript, которые на самом деле изменяют данные в модели и вместо этого направляются через контроллер?Есть ли лучшая практика для этого?

Ответы [ 4 ]

1 голос
/ 25 октября 2010

Предположительно под "javascript" вы имеете в виду больше AJAX ?(Вместо JS-модификации вывода ... в этом случае это просто расширение представления).Нет причин, по которым ваш AJAX не может / не должен маршрутизироваться через MVC, как любой другой компонент.

Конечно, это может ускорить изменения в первоначальном дизайне MVC, но, возможно, это приемлемая часть курса.Конечно, при использовании AJAX визуализация вашего представления может обрабатываться JS, встроенным в существующее представление - если данные предоставляются в виде JSON, а не фрагментов HTML.

1 голос
/ 25 октября 2010

Как это возможно, что код JavaScript, выполняемый на клиенте, может изменять «данные в модели»?Вы просто меняете свойства в JavaScript-представлениях объектов на стороне клиента или вы каким-то образом вызываете методы на стороне сервера из JavaScript (т.е. обращаетесь к сервлетам) для изменения данных?

Если это последнее, тогдаэто нарушение MVC - все запросы от клиента должны проходить через контроллер.

0 голосов
/ 25 октября 2010

Я чрезмерно использую ajax в своем приложении CakePHP MVC.В этом случае действия контроллера получают только , вызываемый javascript, кроме одного статического контроллера, который доставляет html / javascript-страницы в браузер.

0 голосов
/ 25 октября 2010

Я склонен маршрутизировать все вызовы AJAX, которые должны выполнять какие-либо операции CRUD, для отправки запроса GET или POST к функции в контроллере и позволить ему обрабатывать обмен данными с моделью.

Вот какПредставления HTML / CSS обрабатывают данные (т. Е. Получают их из модели через контроллер и отправляют запросы GET & POST к контроллеру), и, поскольку JS находится на стороне клиента, их не следует обрабатывать по-другому.

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