Предпочтительный способ динамического добавления содержимого разметки из XMLHttpRequest - PullRequest
1 голос
/ 08 июня 2009

Какой лучший способ добавить динамический контент на веб-страницу после успешного запроса xml http. Чтобы привести более конкретный пример:

  • Пользователь заполняет данные в поле ввода (например, сообщение на форуме)
  • Данные асинхронно обновляются с использованием технологии ajax
  • Сообщение на форуме мгновенно отображается для конечного пользователя

Сайты, такие как Facebook или last.fm (когда вы публикуете крик, т.е.) отправляют обработанную разметку в прямом объекте обратно в javascript, а не только в обработанные данные. Примером этого написано в jQuery будет

$('#activeField').html(callback.data);

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

Что такое «лучшие практики» для этого? Спасибо!

Ответы [ 2 ]

2 голосов
/ 08 июня 2009

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

Возможно, я упускаю из виду, но не могли бы вы отправить разметку с сервера, отобразив ее в виде, как обычно, вместо того, чтобы иметь разметку в контроллере? Предполагая, что ваш механизм View способен возвращать визуализированный HTML-код, а не выводить его немедленно, вы можете извлечь его и затем добавить в массив перед вызовом json_encode() и его выводом. Затем вы можете потенциально использовать один и тот же код представления для визуализации этого фрагмента HTML независимо от того, извлекается ли он как часть полной страницы или посредством вызова AJAX.

1 голос
/ 08 июня 2009

Я думаю, что этот вопрос слишком сильно давит на субъективное, возможно, но лично я считаю, что лучший план - запрос вернуть JSON, который описывает и контент, и механизм (под которым я имею в виду метод javascript) для сериализации этого в HTML, если существует множество возможностей. Это экономит полосу пропускания и (как вы указали) сохраняет ваше разделение интересов. Последнее, что я действительно хочу, - это чтобы мои ребята-фронтендеры имели дело с произвольной наценкой со стороны серверных ребят. Абстракция это хорошо.

Я не совсем понимаю, почему вы чувствуете, что сгенерированная JS разметка неуклюжа или трудна. Горстка JS-методов, которые анализируют и генерируют стандартные структуры JSON, кажутся мне легковесными и тривиальными, хотя я должен признать, что я всегда катал свои собственные здесь. Почти наверняка есть рамки для этого (кто-нибудь?). Если нет, то у меня есть отличная бизнес-идея ...

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