Ho una pagina web che mostra una grande quantità di dati dal server. La comunicazione avviene tramite ajax.
Ogni volta che l'utente interagisce e modifica questi dati (ad esempio l'utente A rinomina qualcosa), dice al server di eseguire l'azione e il server restituisce i nuovi dati modificati.
Se l'utente B accede alla pagina allo stesso tempo e crea un nuovo oggetto dati, lo dirà di nuovo al server tramite ajax e il server tornerà con il nuovo oggetto per l'utente.
Nella pagina di A abbiamo i dati con un oggetto rinominato. E sulla pagina di B abbiamo i dati con un nuovo oggetto. Sul server i dati hanno sia un oggetto rinominato che un nuovo oggetto.
Quali sono le mie opzioni per mantenere la pagina sincronizzata con il server quando più utenti la utilizzano contemporaneamente?
Opzioni come il blocco dell'intera pagina o il dumping dell'intero stato all'utente a ogni modifica sono piuttosto evitate.
Se aiuta, in questo esempio specifico la pagina web chiama un metodo web statico che esegue una procedura memorizzata sul database. La procedura memorizzata restituirà tutti i dati che ha modificato e non di più. Il metodo web statico inoltra quindi la restituzione della stored procedure al client.
Modifica taglia:
Come si progetta un'applicazione web multiutente che utilizza Ajax per comunicare con il server ma evita problemi di concorrenza?
Ovvero accesso simultaneo a funzionalità e dati su un database senza alcun rischio di danneggiamento dei dati o dello stato