Una pequeña demostración reproduce por qué la edición colaborativa al estilo Figma se ve fluida(qiita.com)
Idioma del texto: coreanoVer en el idioma original
Resumen sencillo
- Cuando varias personas editan la misma pantalla, tus acciones aparecen de inmediato sin esperar la respuesta del servidor. Al confirmarse los cambios, la pantalla no se vuelve a dibujar, lo que evita saltos visuales. La demostración fue creada por Nishiura, desarrollador de Soyi Co., Ltd., simplificando un diseño de 2019 del blog oficial de Figma. Es distinta de la implementación interna real de Figma.
- Al desactivar este tratamiento en la demostración, el nodo arrastrado queda por detrás del ratón y se mueve a saltos. La mediana del tiempo de ida y vuelta al servidor medida por el autor fue de aproximadamente 5ms en local y 150ms en la demostración alojada en Render. Cuanto mayor era la latencia, más visible era la diferencia.
- Como solo hay un servidor, los cambios se procesan por orden de llegada. Si se modifica la misma propiedad al mismo tiempo, queda el valor procesado después. Solo se rechazan los cambios que crean una estructura circular en la que el elemento padre y el hijo se apuntan mutuamente, y se revierte la pantalla de ese usuario.
- El autor concluyó que usar solo el orden de llegada, sin registrar marcas de tiempo, funciona únicamente bajo el supuesto de que un solo servidor determina el orden. Si hay dos o más servidores, se necesita otro mecanismo para determinarlo.
Opinión editorial
O: Si desarrollas interfaces colaborativas, puede ser útil comparar la respuesta al arrastrar en la demo web con la prevención de saltos de pantalla activada y desactivada.
X: La demo no distingue los valores de orden duplicados cuando se insertan elementos al mismo tiempo entre los mismos dos elementos, por lo que en una implementación real se necesita un mecanismo independiente para determinar el orden.
Idioma del texto: coreano
Encontrado en
Qiita ↗ / Publicado por la fuente
¿Te ha pasado algo parecido? Cuéntanos en una o dos líneas qué hiciste. No hace falta conocer el producto.