|
Les modifications concurrentes posent problème comme dans toutes les autres applications client-serveur. Un moyen simple de gérer quasiment tous les problèmes est de passez un token de date au formulaire, auquel on confrontera la date de la dernière modification loguée.
code HTML template:
<form>
...
<input type="hidden" name="revision" value="{{$now}}" />
</form>
On peut même affiner énormément la confrontation des révisions en testant quels champs ont été modifié depuis la révision courante, grâce aux logs. En cas de conflit, simplement retourner une erreur à l'utilisateur, qui doit resaisir les valeurs avec le nouvel objet. Ce qui est bien moins pire qu'une perte de données.
Attention, il y a une limite dans les modifications faites en Ajax, car on ne récupère pas la nouvelle version de l'objet.
|