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:
- wenn der User auf dem einen Client in einem Vorgang navigiert
und nun auf dem anderen Client ebenfalls diesen Vorgang anspricht?
Was passiert da bei Datenveränderungen? - wenn sich der User auf dem einen Client abmeldet,
soll er dann auf dem anderen auch abgemeldet sein? - ...
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