создание динамических веб-приложений без перезагрузки с использованием Django - PullRequest
0 голосов
/ 15 июля 2009

Насколько я знаю, для нового запроса, поступающего из веб-приложения, вам необходимо перезагрузить страницу, чтобы обработать и ответить на этот запрос.

Например, если вы хотите показать комментарий к сообщению, вам необходимо перезагрузить страницу, обработать комментарий и затем показать его. Однако я хочу, чтобы я мог иметь возможность добавлять комментарии (что-то вроде facebook, где комментарий добавляется и отображается без перезагрузки, например, всей страницы) без необходимости перезагрузки веб-страницы. Можно ли обойтись только Django и Python без знания Javascript / AJAX?

Я слышал, что это возможно с AJAX (я не знаю как), но мне было интересно, можно ли это сделать с Django.

Спасибо

Ответы [ 4 ]

8 голосов
/ 15 июля 2009

Вы хотите сделать это без какого-либо клиентского кода (javascript и ajax - только примеры) и без перезагрузки вашей страницы (или хотя бы ее части)?

Если это ваш вопрос, то, к сожалению, вы не можете. Вам нужен либо код на стороне клиента, либо перезагрузить страницу.

Подумайте об этом, как только клиент перейдет на страницу, он не изменится, если

  • Клиент запрашивает ту же страницу с сервера, а сервер возвращает и обновляет одну
  • на странице есть некоторый код на стороне клиента (например, javascript), который обновляет страницу.

Я не могу представить третью возможность. Я не программировал в Django более 30 минут, и для меня это очевидно. Если я ошибаюсь, пожалуйста, проголосуйте: D

3 голосов
/ 15 июля 2009

Вы определенно хотите использовать AJAX. Это означает, что клиент должен будет выполнить некоторый код JavaScript.

Если вы не хотите изучать javascript, вы всегда можете попробовать что-то вроде пижама . Вы можете проверить пример его HttpRequest здесь

Но я всегда чувствую, что использование прямого javascript через библиотеку (например, jQuery) легче понять, чем пытаться заставить один язык перейти на другой.

1 голос
/ 15 июля 2009

Может быть, несколько iFrames и немного Comet / long-polling? Отправьте комментарий в iFrame (чтобы вся страница не перезагружалась), а затем покажите результат в длинном опросе iFrame ...

Сказав это, это довольно плохая идея дизайна, и вы, вероятно, не хотите этим заниматься. AJAX / JavaScript в значительной степени способ пойти на такие вещи.

Я слышал, что это возможно с AJAX ... но я был интересно, можно ли было сделать с Джанго.

Нет причин, по которым вы не можете использовать оба - в частности, AJAX в веб-приложении Django. Django обеспечивает потребности вашей организации и инфраструктуры (и страницу, которая будет отвечать на запросы AJAX), а затем использует JavaScript на стороне клиента для выполнения вызовов AJAX на вашей странице, поддерживаемой Django, которые будут отвечать правильно.

Я предлагаю вам найти базовое руководство по jQuery, которое должно объяснить достаточно базового JavaScript, чтобы это заработало.

1 голос
/ 15 июля 2009

Чтобы сделать это правильно, ajax был бы способом пойти НО в ограниченном смысле, вы можете достичь того же самого, используя iframe , если iframe похож на другую страницу, встроенную в главную страницу, поэтому вместо обновляя всю страницу, вы можете просто обновить внутреннюю страницу iframe, и это может дать тот же эффект.

Подробнее о шаблонах iframe вы можете прочитать на http://ajaxpatterns.org/IFrame_Call

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