À deux dans l'éditeur
L'éditeur montre qui d'autre est sur une page et qui détient le verrou. Le verrou est indicatif - ce qui empêche vraiment une écriture perdue, c'est la vérification de version à l'enregistrement.
Ouvrez une page que quelqu'un d'autre est en train de modifier et cmssy vous le dit. Il ne vous arrête pas - et la différence entre ces deux phrases est tout le sujet de cette page.
Présence
Un éditeur ouvert envoie un battement. Chaque battement enregistre que vous êtes sur la page et repousse votre expiration de 30 secondes ; l'enregistrement disparaît de lui-même dès que personne ne le rafraîchit. Fermez l'onglet, perdez le réseau, refermez le portable, et vous quittez la page en moins d'une demi-minute sans que personne ait à nettoyer.
L'éditeur relit cette liste : qui est là maintenant, et lequel détient le verrou.
Le verrou
La première personne arrivée le détient. Si la présence du détenteur a expiré - onglet fermé, réseau tombé - le battement suivant reprend le verrou automatiquement, pour qu'un onglet abandonné ne verrouille pas une page à jamais. Il existe aussi une reprise explicite, pour le cas où le détenteur est bien là et où vous avez besoin de la page quand même.
Le verrou est indicatif. Rien dans le chemin d'enregistrement ne refuse une écriture parce qu'un autre le détient. Il existe pour qu'une personne voie qu'une collègue est là et décide elle-même - attendre, demander, ou reprendre délibérément - et non pour décider à sa place.
Ce qui protège vraiment votre travail
Chaque enregistrement porte la version que le client a chargée. Si la page a avancé entre-temps - parce que l'autre a enregistré avant - l'écriture est refusée avec VERSION_CONFLICT, et le client recharge au lieu d'écraser un travail qu'il n'a jamais vu.
C'est là la vraie garantie, et il vaut la peine de comprendre pourquoi elle est séparée du verrou. Un verrou non appliqué ne peut pas perdre votre travail ; une vérification de version appliquée ne se laisse pas convaincre. Appliquer le verrou signifierait qu'un navigateur planté peut bloquer une page jusqu'à expiration - une panne pire que de devoir recharger.
Les deux répondent à des questions différentes. Le verrou : « quelqu'un d'autre est-il ici ? » La version : « suis-je en train d'écraser quelque chose ? »
Ce que ce n'est pas
Ce n'est pas de l'édition collaborative. Deux personnes qui tapent dans la même page ne voient pas les caractères de l'autre apparaître, et rien n'est fusionné : le second enregistrement est refusé, le client recharge, et le travail est refait par-dessus ce qui a atterri. Pour écrire en même temps, répartissez par bloc ou par page, pas par paragraphe.
Étapes suivantes
- Constructeur de pages - l'éditeur où ces signaux apparaissent.
- Historique des versions - d'où un paragraphe perdu se récupère malgré tout.