dynamische Liste ständig anzeigen
basti123
- programmiertechnik
Hallo!
Mich beschäftigt folgendes.
Ich habe eine Webseite, wo man Termineinträge machen kann. Angemeldete Nutzer sollen dann, die sie interessierenden, Termine anklicken können und eine Liste aller angeklickten Termine soll dann immer an der rechten Seite zu sehen sein. Dies, da ich weitere Unterseiten habe, die Terminliste soll aber immer zu sehen sein.
Aktuell habe ich es so, dass die Liste einmal in einer Datenbank abgelegt wird und, damit ich nicht bei jedem internem Seitenwechsel die Datenbank jedes mal abfragen muss, in ein Sessionarray geschrieben wird.
Aus diesem wird dann die dargestellte Liste erzeugt wird.
Klappt soweit, nur habe ich diesen schwerwiegenden Nachteil mitbekommen.
Die Nutzer können beim Einloggen sagen, dass sie eingeloggt bleiben wollen und dann wird das in einem Cookie bemerkt.
Ist der Nutzer nun schon auf einem anderem Rechner eingeloggt, wird da eine neue Session erzeugt und die Liste ist weg. Die Liste wird eigentlich nur aus der Datenbank geladen, wenn man sich komplett neu einloggt, dynamisch wird sie erweitert, wenn ein Termineintrag hinzugefügt wird.
Wo ich einen Denkanstoss brauche: wie halte ich die Liste am besten so, dass ich nicht bei jedem Wechsel ein Datenbankabfrage machen muss, aber diese Liste auch dann präsent ist, wenn der Nutzer meine Seite auf anderen Rechnern nutzt?
Vielen Dank,
basti
Hallo,
Wo ich einen Denkanstoss brauche: wie halte ich die Liste am besten so, dass ich nicht bei jedem Wechsel ein Datenbankabfrage machen muss, aber diese Liste auch dann präsent ist, wenn der Nutzer meine Seite auf anderen Rechnern nutzt?
Eine Abfrage, ob deine Liste in der Session vorhanden ist - und darauf entsprechend reagieren. Genug Denkanstoss?
vg ichbinich
Hello,
Wo ich einen Denkanstoss brauche: wie halte ich die Liste am besten so, dass ich nicht bei jedem Wechsel ein Datenbankabfrage machen muss, aber diese Liste auch dann präsent ist, wenn der Nutzer meine Seite auf anderen Rechnern nutzt?
Eine Abfrage, ob deine Liste in der Session vorhanden ist - und darauf entsprechend reagieren. Genug Denkanstoss?
Das ist unüberlegt, denn:
Auf einem anderen Client läuft eine andere Session. So wäre es zumindest üblich und praktisch.
Gemeinsame Daten sollten auch in einer gemeinsamen Datenhaltung liegen. Das einfachste ist also wirklich, bei jedem Request die DB-Abfrage durchzuführen. Dann wären die Daten auch immer "request-aktuell".
@Basti: Angenommen, Du würdest für den User immer dieselbe Sessiondatei verwenden, was durchaus geht. Was soll passieren:
Mach Dir erstmal genaue Gedanken darüber, ob ein User zwei oder mehr getrennte aktive Sessions haben können soll, oder ob die zu einer zusammengefasst werden. Das wäre dann so eine Art Remote-Control. Remote ist aber mit HTTP nicht möglich, da es zustandslos und (hier wohl wichtiger) auch verbindungslos arbeitet. Wenn Remote gewünscht wird, müsstest Du also die Verbindungsorientierung künstlich erzeugen. Das geht mit Ajax.
Dazu müsstest Du den MC des "Client" dann auf einen "Client-Server" verlegen und in den Browsern nur noch die Views abrufen. Das bedeutet dann viiiel Javascript und asynchrone Kommunikation.
Denn die Bediener desselben Users konkurrieren ja immer noch miteinander...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg