Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/03/2011, 09:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Django: Mostrar un mensaje

Sí se ha entendido lo que querés hacer, y es posible usando llamadas asíncronas como se explica en el enlace que razpeitia te dio antes.

El tema es que creo que no estás entendiendo cómo funcionaría a nivel básico.
Recordá que AJAX es Javascript, y que Javascript se ejecuta en el navegador, después de que la página fue generada en el servidor por Django (o cualquier otro framework o lenguaje que uses en el servidor) y por lo tanto Javascript y django solamente pueden interactuar mediante peticiones http. Actualmente no existe[*] una forma de que Django inicie una transmisión, tenés que iniciarla desde Javascript. Lo que quiero decir es que no podés hacer que django le mande "ya terminé" al navegador, si con Javascript no le preguntás antes "¿terminaste?"

La idea es, entonces, que hagas una llamada asíncrona al servidor desde javascript, y que en el servidor tengas una vista que simplemente responda "ya terminé" cuando llegue el momento.
La llamada asíncrona asegura que Javascript (y el navegador) se quedarán esperando por esa respuesta, y cuando llegue se ejecutará la función que elijas.
Usando esa función podrías actualizar la página, o mostrar un mensaje.

Si demora mucho, para evitar problemas de tiempo de respuesta agotado (timeout) podrías hacer un bucle en javascript que cada x segundos le pregunte al servidor. Pero la idea básica es la que intenté explicar en el párrafo anterior.

Espero que te haya quedado más claro ahora.
[*] en realidad sí existe, pero involucra técnicas relativamente avanzadas (server push) o muy nuevas (web sockets)

Saludos