Moin!
Ich hab unlängst einen Chat geschrieben, der seine Kommunikation über eine MySQL-Datenbank abwickelt. Aber das Teil ist grausam, weil das Funktionsprinzip grausam ist.
kann ich den Chat erreichen?
Man muß zwingend Frames einsetzen,
warum?
Ok, man kann auch zwei Browserfenster aufmachen. Das ist aber fast dasselbe. :)
Erklärung:
Der Browsernutzer will üblicherweise relativ zeitnah und vor allem ohne eigene Aktivität die Chat-Äußerungen der anderen Teilnehmer sehen. Zu diesem Zweck ist es notwendig, die Anzeige mit den letzten Äußerungen regelmäßig zu aktualisieren.
Die einzige vernünftig arbeitende Methode dafür ist, in regelmäßigen Abständen die Anzeigeseite neu zu laden. Das geht wahlweise über entsprechende HTTP-Header oder deren Äquivalent in Meta-Tags (Refresh).
Wenn man aber nur ein einziges Browserfenster benutzt, muß zwingenderweise das Eingabefeld für eigene Äußerungen ebenfalls auf dieser Seite untergebracht sein. Wenn man aber unglücklicherweise seinen Satz nur halb eingetippt hat, und die Seite lädt sich neu, bevor man ihn abgeschickt hat, dann ist die Eingabe futsch.
Einzige Lösung: Die zwei Seitenteile in Frames packen.
Zugegeben: Man könnte mit einem aufwendigen Drumherum an Javascript sicherlich noch einiges retten. Beispielsweise onunload die bisherige Eingabe in den Fensternamen retten und onload auf der erneuerten Seite wieder ins Feld hineinschreiben. Aber das halte ich beides für äußerst fragwürdig, zumal man ja üblicherweise auf Javascript nicht zwingend vetrauen darf (jedenfalls war das eine Bedingung bei meiner Entwicklung).
- Sven Rautenberg