Laden...

Im Client einzelne Datensätze nachladen bei änderung

Erstellt von Coooder vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.381 Views
C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 8 Jahren
Im Client einzelne Datensätze nachladen bei änderung

Hallo Leute,

ich arbeite an einer Software die aus einer Datenbank jede menge Daten läd, z.B. Kontaktdaten...
Jetzt gibts nun auch mehrere User die unter anderem neue Kontakte anlegen oder bestehende editieren können. Nun will ich natürlich nich ständig bei den Clients immer alles provisorisch nachladen sondern nach möglichkeit eben nur genau die änderung.

Wie kann man das am besten realisieren? Schickt man zumbeispiel vom Server bei irgendeiner änderung eine Nachricht an die Clients oder was empfiehlt sich bei sowas?

16.806 Beiträge seit 2008
vor 8 Jahren

Bei mir verbinden sich Clients immer mit einem Json-Webservice; dort holen sie initial die Daten.
Zeitgleich verbinden sich die Clients mit einem SignalR Hub, über den Aktualisierungen an die Clients gepusht werden.

Wenn ein Client einen Datensatz an den WebService zum hinzufügen / aktualisieren übergibt und das Schreiben in die DB erfolgreich war, dann wird dieser Datensatz "gebroadcastet".
Lockings, damit zwei Clients nicht an einem Datensatz arbeiten, realisiere ich normalerweise via Optimistic Concurrency

2.207 Beiträge seit 2011
vor 8 Jahren

Ich kenne jetzt deine Umgebung nicht, aber mit SignalR hat man die Möglichkeit Veränderungen vom Server an den Client zu schicken. Üblicherweise schickt man da aber einfach den kompletten editierten Datensatz (beispielsweise einen Kunden) als JSON. Alles andre wäre recht viel Aufwand, weil du ja clientseitig wieder prüfen musst, was sich geändert hat etc.

Andersrum (Client --> Server) verwendet man für Partialupdates das HttpPatch-Verb. Da werden nur die Änderungen hoch an den Server geschickt.

Gruss

Coffeebean

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 8 Jahren

okay vielen dank, damit komm ich weiter