Falc410
Vice Admiral
- Registriert
- Juni 2006
- Beiträge
- 6.640
Ich erstelle momentan mit Django und Python eine Webseite. U.a. kann der User eine Audio Datei aufnehmen und hochladen. Wenn diese vom Server verarbeitet worden ist, soll dem Benutzer eine Nachricht angezeigt werden. In der Zwischenzeit soll sich dieser aber mit anderen Teilen der Webseite beschäftigen können.
Soweit so gut. Das Message Framework von Django stellt die Nachrichten direkt im HTML Code dar. Also wenn eine Seite aufgerufen wird und eine Nachricht vorliegt, wird diese in den HTML Code eingebettet.
Ich möchte das aber dynamisch haben. Dafür gibt es auch Module wie django-ajax-messages oder so ähnlich. Ich frage mich nur wie die Technologie dahinter funktioniert. Alle Lösungen die ich gefunden habe stellen die Nachrichten in einer View / URL als JSON zur Verfügung. Soweit ist mir noch alles klar. Aber wie kann ich mich per Javascript da als Observer subscriben? Busy-Waiting oder alle paar Sekunden schauen ob eine neue Nachricht da ist, wäre ja total ineffizient und wird sicher auch nicht gemacht.
Die einzige Möglichkeit die ich sonst kenne, asynchron vom Server mit einem Browserclient zu kommunizieren, ist über Websocket. Das habe ich in der Vergangenheit schon öfters gemacht. Aber ich sehe nicht dass die von mir gefundenen Lösungen auf Websockets setzen.
Wie ist es also technisch noch möglich, asynchron vom Server an einen Browser eine Nachricht zu schicken (damit dieser dann z.B. eine JSON Queue abruft und darstellt)?
Soweit so gut. Das Message Framework von Django stellt die Nachrichten direkt im HTML Code dar. Also wenn eine Seite aufgerufen wird und eine Nachricht vorliegt, wird diese in den HTML Code eingebettet.
Ich möchte das aber dynamisch haben. Dafür gibt es auch Module wie django-ajax-messages oder so ähnlich. Ich frage mich nur wie die Technologie dahinter funktioniert. Alle Lösungen die ich gefunden habe stellen die Nachrichten in einer View / URL als JSON zur Verfügung. Soweit ist mir noch alles klar. Aber wie kann ich mich per Javascript da als Observer subscriben? Busy-Waiting oder alle paar Sekunden schauen ob eine neue Nachricht da ist, wäre ja total ineffizient und wird sicher auch nicht gemacht.
Die einzige Möglichkeit die ich sonst kenne, asynchron vom Server mit einem Browserclient zu kommunizieren, ist über Websocket. Das habe ich in der Vergangenheit schon öfters gemacht. Aber ich sehe nicht dass die von mir gefundenen Lösungen auf Websockets setzen.
Wie ist es also technisch noch möglich, asynchron vom Server an einen Browser eine Nachricht zu schicken (damit dieser dann z.B. eine JSON Queue abruft und darstellt)?