Aktions-Feedback zum User schicken, wie? (flash messages)
Verfasst: Donnerstag 15. Mai 2008, 10:49
Ich frage mich wie man am besten dem User eine Nachricht als feedback zu einer ausgeführten Aktion in der Web App auf der nächsten Seite zeigen kann.
Der einfachste Weg wäre wohl in den GET Daten einfach sowas wie ?msg=Text dran zu hängen und die Daten dann in der Webseite einzublenden.
Wäre aber eine sehr dumme Idee, weil man so Cross-Site Scripting einfach macht
Die Nachricht in den POST Daten zu "verstecken" ist wohl ebenso Sinnlos.
Die Nachricht in den Session Daten auf dem Server belassen wäre ok. Es gibt da sogar schon mehrere Varianten:
http://www.djangosnippets.org/snippets/319/
http://www.djangosnippets.org/snippets/331/
Dumm ist es allerdings, wenn der User mehrere Seiten gleichzeitig anzeigen läßt. So kann es sein, das die Nachricht evtl. auf einer falschen Seite angezeigt wird.
In Pylons und turbogrars heißt das wohl "flash messages". Ich hab das in einem Pylons Template gefunden:
Hab noch gefunden: http://www.splee.co.uk/2005/11/23/fancy ... -tg_flash/ Dort wird mit Ajax mitteln gearbeitet.
In PyLucid habe ich eine selbe Funktion, die jedoch die Nachricht nicht in die "nächste" Seite anzeigen kann, sondern immer nur in die aktuell gerenderte Seite. Das ist auch für 99% der Fälle bisher vollkommen ok.
Alternativen? Wie macht ihr das?
Der einfachste Weg wäre wohl in den GET Daten einfach sowas wie ?msg=Text dran zu hängen und die Daten dann in der Webseite einzublenden.
Wäre aber eine sehr dumme Idee, weil man so Cross-Site Scripting einfach macht

Die Nachricht in den Session Daten auf dem Server belassen wäre ok. Es gibt da sogar schon mehrere Varianten:
http://www.djangosnippets.org/snippets/319/
http://www.djangosnippets.org/snippets/331/
Dumm ist es allerdings, wenn der User mehrere Seiten gleichzeitig anzeigen läßt. So kann es sein, das die Nachricht evtl. auf einer falschen Seite angezeigt wird.
In Pylons und turbogrars heißt das wohl "flash messages". Ich hab das in einem Pylons Template gefunden:
Code: Alles auswählen
<% flash_message = h.flash.pop_message() %>
% if flash_message:
<div id="flash-message">${flash_message | h}</div>
% endif
In PyLucid habe ich eine selbe Funktion, die jedoch die Nachricht nicht in die "nächste" Seite anzeigen kann, sondern immer nur in die aktuell gerenderte Seite. Das ist auch für 99% der Fälle bisher vollkommen ok.
Alternativen? Wie macht ihr das?