2009-07-30 4 views
2

Вы запускаете запросы ajax через структуру MVC по выбору или непосредственно в CFC?Ajax запрашивает через MVC Framework (например, ColdBox) или нет?

Я склоняюсь к обходу MVC, так как мне не нужно «View» из запроса ajax.

Что такое pro для маршрутизации ajax-вызовов через MVC-фреймворк, например Coldbox?

обновления: нашел эту страницу http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbAjaxHints, но я все еще пытаюсь оберните свой ум вокруг, какие преимущества она приносит по сложности он вводит ...

ответ

4

Генри, я делаю свои запросы Ajax объектам прокси моей модели. Как правило, я делаю это вне рамки. При этом может быть (очень) необходимо использовать вашу инфраструктуру, например, работать в рамках установленной модели безопасности.

+6

* Каждый раз в год * Я пытался напрямую обратиться к ХФУ, я пожалел об этом. Пункт Cutter о безопасности - это не тот, который нужно воспринимать легкомысленно. Вы упоминаете ColdBox и «сложность», но я не вижу, как прохождение через прокси добавляет сложности. Для меня это значительно упростило: добавьте новую функцию в прокси-сервер, который делегирует какой-либо код для реальной работы, а затем визуализирует результат. Вот где сильные стороны, такие как ColdBox. –

2

Цели «представление» в рамках MVC состоит в шоу данные после «модели» и «контроллера» сгенерировали его. Если вам не нужен «вид», то в чем смысл использовать такой шаблон дизайна?

+0

Единственный момент, о котором я могу думать, это то, что инфраструктура MVC будет иметь доступные сервисы singleton и, возможно, некоторую поддержку аутентификации ... не уверен, что у меня отсутствуют какие-либо другие преимущества, если они есть. – Henry

+1

Но почему вам не нужен «вид» для запросов ajax? –

+0

@LucaMatteis 'view' может быть более подходящим образом назван «слоем презентации» или, другими словами, то, что возвращается клиенту. Использование шаблона проектирования позволяет разделить проблемы, которые полезны для ремонтопригодности, даже если то, что вы делаете назад, предназначено для использования функцией JavaScript, а не механизмом компоновки браузера. – jinglesthula

0

Я согласен с Luca. Он также обходит любую логику дезинфекции и фильтрации, которая у вас есть в вашем стеке MC. Это в основном отрицает любую обработку запросов, которую вы можете или не можете иметь.

4

Я не вижу никакой пользы от обхода рамки MVC - в сочетании эти три элемента - это ваше приложение.

Ваши элементы ajax действительно являются частью представления. Как говорит Лука, представление выводит результаты модели и контроллера.

Посмотрите на это так: если вы создали веб-интерфейс для iPhone (т. Е. Новый вид), вы бы обошли модель и контроллер?

4

Луис Majano, создатель ColdBox said:

Эти две школы Аякса взаимодействия генри.

Я предпочитаю прокси подход, поскольку он добавляет следующее:

  1. Debugging
  2. трассировка в отладчике
  3. АОП точек перехвата
  4. безопасности
  5. доступность Настройка
  6. прокси будет ретранслировать на модель события, поэтому я могу использовать локальный перехват точки, местные АОП, плагины и т.д.

Другими словами, это может быть весьма отслеживается вызов вместо простого службы Cfc вызова, который вы можете сделать.

Я, например, люблю, чтобы мое исполнение профилировщика работает (часть coldbox отладчика), так что я могу видеть, когда Ajax запросы приходят и когда они приходят аут. Я могу видеть запрошенные данные и данные, отправленные обратно. Мне не нужно посмотреть в файлах журналов или попытаться представить результаты или проблемы . Это действительно помогает в отладке.

Однако, это был бы разработчик выбор, каким образом вы решите пойти. Лично я предпочитаю всегда использовать свой прокси-сервер для делегирования событий , потому что он дает мне гораздо больше гибкость, отладка и покой ум.

+0

Прокси-сервер coldbox очень эффективен при правильном использовании. Я посылаю все свои аякс-звонки, хотя это. Это помогает мне организовывать мой код и позволяет мне отслеживать все это. Как сказал Луис, это дает мне душевное спокойствие. – JoshHighland

0

Да, я не обойду вашу структуру, выяснить, что вызывает у вас печаль и выследить обижая части, добавив логику, чтобы исключить общие компоненты, такие как заголовки или нижние колонтитулы, и ищут иньекционные пробела, что в то время как штраф для html является раздражающим или недопустимым проблемным при анализе json.

Добавление вывода = «false» особенно в вашем приложении application.cfc, и его методы были бы первым, что я очистил.

Я твердо убежден в том, что НИКОГДА не обращался напрямую к CFC напрямую, я нахожу, что он создает долгосрочные проблемы, когда крупный рефактор может захотеть консолидировать или исключить компоненты, прямой доступ потенциально сделает это сложнее, чем это должно быть, особенно если третья сторона нажимает ваш аякс из другого домена (например, удаляет флеш).

+1 к ответу Стива.