Новое в Django и Ajax в целом.Должен ли я визуализировать ответы ajax на стороне сервера?
Мне было интересно узнать общий вопрос о хорошем веб-дизайне: Если функция вида, которая возвращает вызов, называемый с помощью ajax, возвращает структуры данных и оставляет рендеринг HTML-страниц на стороне клиента (что означает javascript) или это также «хорошо» практика, чтобы отобразить весь HTML и вернуть его в javascript, чтобы он мог вставить его где-нибудь в коде?
Я не хочу, чтобы логика моих шаблонов повторялась javascript. Я хочу использовать шаблоны для рендеринга HTML и вернуть его клиенту. Но ... это не соответствует точке аякса, не так ли?
я наткнулся на эту фантастическую должность: Rendering JSON objects using a Django template after an Ajax call
Поскольку это старый, я не отправлял ответ там, а возродили этот вопрос здесь. Можно ли технически отобразить на стороне сервера? да. Лучшая практика? Я не знаю.
Возможно, лучшей практикой является то, что мои HTML-страницы образуют «пустые пространства», уже хорошо сформированные и просто передают данные назад и вперед.
Я хотел бы услышать ваше мнение по этому вопросу.
После удержания, поскольку это обсуждение имеет тенденцию быть основанным на мнениях (оно есть), и этот формат не подходит для этого форума, хотя было бы полезно обновить сообщение, чтобы включить более тонкое разрешение обсуждения с очень технические последствия.
Что в вашем опыте «djangonian» было бы лучшей практикой для создания веб-страницы, такой как лента новостей, которая может динамически обновляться с помощью вызовов ajax, которые возвращают необработанные данные клиента (с использованием JSON для пример), а не предварительно обработанный HTML?
Я уточню: У меня есть сайт. На этом канале пользователь видит много сообщений и комментариев за сообщение. Каждое сообщение представляет собой собственную HTML-форму и уже структурировано как HTML. Пример источника страницы:
<form id="post_looloo_by_testuser" method="post" action="/bz/login/" class="single_post_form">
<input type='hidden' name='csrfmiddlewaretoken' value='GfOHEMxx433XBUpg3yakTYPRQCVq132f' />
<p class="box_single_post">
<span name="post">
<label class="single_post_form">
says: looloo
</label>
</span>
<span name="comments_for_post">
<span name="single_comment">
<label class="single_comment">
testuser2 commented: moomoomoo
</label>
</span>
</span>
<span name="comments_for_post">
<span name="single_comment">
<label class="single_comment">
testuser2 commented: qweqwe
</label>
</span>
</span>
<span name="add_comment">
<input id="id_add_comment" maxlength="140" name="new_comment" type="text" placeholder="Add a comment..."/>
</span>
</p>
</form>
На вершине, как и на Facebook, пользователь может добавить новый пост мгновенно.
<form id="add_post_form" method="post" action="" class="new_post_form" username="testuser">
<input type='hidden' name='csrfmiddlewaretoken' value='GfOHEMxx433XBUpg3yakTYPRQCVq132f' />
<span name="add_post">
<input id="id_add_post" maxlength="140" name="new_post" type="text" placeholder="Say something"/>
<input id="add-post-btn" type="submit" name="submit" value="Add" username="testuser"/>
</span>
</form>
Кнопка «Добавить» (на самом деле представить в виде) затем ссылаться на Ajax вызов определенной точки зрения в мое приложение на стороне сервера. Я хочу, чтобы представление возвращало информацию, такую как пользователь, которому принадлежит сообщение, текст сообщения, список комментариев и т. Д. Информация будет возвращена как JSON или XML. Не как предварительно обработанный HTML. Я хочу, чтобы мой javascript обрабатывал информацию и обновлял фид пользователя с новым сообщением сверху, избегая при этом обновления страницы (отсюда и использование ajax).
Проблема заключается в том, что пользователь может, конечно, добавить бесконечное количество сообщений (или ограниченное число, но больше одного). Почему это имеет значение? см. ниже вопрос:
Как создать страницу подачи таким образом, чтобы я мог просто обновлять переменные на странице с помощью динамически извлекаемой информации и по-прежнему допускать добавление дополнительных сообщений?
Если бы я заранее знал, что доступно только одно такое новое сообщение, я бы создал предварительно созданную почтовую форму, невидимую, и javascript установил значения в эту форму и установил бы ее на видимую. Но как насчет второго сообщения, которое добавляет пользователь? и третий? и так далее ...
Я хотел бы узнать из вашего опыта. Спасибо.
Hello.Duly отметил. Я редактировал свой пост, чтобы лучше соответствовать характеру этого форума. Спасибо. – dotaneli