Как частично обновить макет / шаблон в Grails - PullRequest
2 голосов
/ 24 июня 2011

Я не очень разбираюсь в веб-разработке, особенно в представлениях, мне нужно простое объяснение (и ссылки на ресурс тоже были бы очень хорошими) о том, как справляться с рендерингом макета или шаблона частично без рендеринга всей страницы. снова ...

Какая лучшая практика?

Предоставляет ли это макеты Sitemesh? если да как?

Должен ли я использовать JQuery для передачи данных как JSON из контроллера и обновления соответствующего div с помощью ".html ()"? (который я сделал что-то подобное давным-давно для некоторых базовых вещей, и думаю, что это не самый лучший способ сделать это)

или <g:include> это для меня?

Все, что я прочитал об этом, смутило меня еще больше:)

На самом деле вопрос в том, что является наилучшей практикой в ​​Grails для обработки частичных обновлений страниц (с Ajax или без ajax, если в эти дни есть какие-либо другие способы)

Заранее спасибо

EDIT:

этот учебник на самом деле дает действительно хорошее представление о том, как это сделать

Ответы [ 2 ]

5 голосов
/ 24 июня 2011

Какая лучшая практика?

Обычной практикой является отправка AJAX-запроса (т. Е. HTTP-запроса, инициированного из JavaScript) и использование функции обратного вызова JavaScript, которая обновляет раздел страницы при возврате ответа.

Предоставляет ли это макеты Sitemesh?если да, то как?

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

Должен ли я использовать JQuery передавать данные как JSON из контроллера и обновлятьсоответствующий div с ".html ()"

Посмотрите на теги, предоставленные Grails, которые имеют слово "remote" где-то в имени тега.Они предоставляют очень простой способ выполнения общих задач AJAX в приложении Grails.Например, чтобы отправить AJAX-запрос к действию с именем bookByName и добавить ответ к элементу с идентификатором foo, просто добавьте следующий тег на свою страницу.

<g:remoteFunction action='bookByName' update='foo'/>
1 голос
/ 24 июня 2011

Возможно, вам нужно использовать тег RemoteLink: http://grails.org/doc/latest/ref/Tags/remoteLink.html Вы можете настроить его для обновления некоторого фрагмента вашей страницы после вызова удаленного действия.

Кстати, это тоже очень удобно, использоватьajax и javascript, на стороне клиента:)

...