Ich habe eine Webseite, auf der eine große Datenmenge vom Server angezeigt wird. Die Kommunikation erfolgt über Ajax.
Jedes Mal, wenn der Benutzer mit diesen Daten interagiert und sie ändert (sagen wir, Benutzer A benennt etwas um), weist er den Server an, die Aktion auszuführen, und der Server gibt die neuen geänderten Daten zurück.
Wenn Benutzer B gleichzeitig auf die Seite zugreift und ein neues Datenobjekt erstellt, teilt er dies dem Server erneut über Ajax mit, und der Server kehrt mit dem neuen Objekt für den Benutzer zurück.
Auf der Seite von A haben wir die Daten mit einem umbenannten Objekt. Und auf B's Seite haben wir die Daten mit einem neuen Objekt. Auf dem Server haben die Daten sowohl ein umbenanntes als auch ein neues Objekt.
Welche Möglichkeiten habe ich, um die Seite mit dem Server synchron zu halten, wenn mehrere Benutzer sie gleichzeitig verwenden?
Optionen wie das Sperren der gesamten Seite oder das Speichern des gesamten Status für den Benutzer bei jeder Änderung werden eher vermieden.
Wenn dies hilfreich ist, ruft die Webseite in diesem speziellen Beispiel eine statische Webmethode auf, die eine gespeicherte Prozedur in der Datenbank ausführt. Die gespeicherte Prozedur gibt alle geänderten Daten zurück und nicht mehr. Die statische Webmethode leitet dann die Rückgabe der gespeicherten Prozedur an den Client weiter.
Bounty Edit:
Wie entwerfen Sie eine Mehrbenutzer-Webanwendung, die Ajax für die Kommunikation mit dem Server verwendet, jedoch Probleme mit der Parallelität vermeidet?
Dh gleichzeitiger Zugriff auf Funktionen und Daten in einer Datenbank ohne das Risiko von Daten oder Statusbeschädigungen