Soy miembro de un foro de Discourse (BlenderArtists.org) y tengo un monitor 4K que me permite tener dos páginas del foro colocadas una al lado de la otra.
A veces, cuando planeo escribir un comentario largo y preparo mi respuesta (incluyendo varias citas de un hilo largo actual), abro el Editor de mensajes en la página izquierda y navego por el mismo hilo en la página derecha.
Pero cuando hago eso, este mensaje aparece con mucha frecuencia:
El borrador se está editando en otra ventana. Por favor, recarga esta página.
No estoy en contra de esta advertencia (estoy seguro de que es útil en algunas circunstancias).
Pero ¿sería posible agregar una opción en las preferencias del usuario para desactivarla? ¿O para establecer la frecuencia de visualización (el temporizador)?
Este mensaje de advertencia impide escribir el mensaje con tranquilidad.
Lo sentimos, hemos recibido demasiadas solicitudes de soporte sobre esto, por lo que la insistencia es intencional. Es un flujo de trabajo muy arriesgado y podrías perder toda tu publicación.
Intentamos abrir automáticamente el borrador para editarlo cuando entras en un tema. Incluso si minimizas inmediatamente el editor, sigue activo y en conflicto.
Sí, me ha pasado. Es definitivamente molesto cuando ocurre, pero estoy de acuerdo con Jeff en que debemos ser cautelosos aquí debido a los problemas históricos.
Mi solución suele ser abrir el tema en dos pestañas y comenzar a redactar solo después de que ambas se hayan cargado.
También me ha afectado la apertura automática del borrador, pero es peor que solo recibir el mensaje de advertencia. He vuelto a escribir mi publicación y luego apareció la ventana emergente, intentando redirigirme a otra pestaña que tiene un borrador más antiguo. En ese momento, si actualizo la página, solo obtengo la versión más antigua de mi borrador, por lo que, en ese sentido, esta función no está realmente previniendo lo que intenta evitar.
No estoy seguro de si ocurre antes de empezar a escribir. Acabo de intentar reproducirlo en meta y solo sucedió cuando empecé a escribir en la segunda pestaña. Suelo activar esto poco después de duplicar mi pestaña para consultar lo que estoy escribiendo. Pierdo la noción de en qué pestaña empecé, y cuando empiezo a escribir por error en la segunda pestaña, aparece la advertencia.
¿Sería posible o razonable detectar si otra pestaña ya tiene el editor abierto para el tema dado y, en ese caso, no abrir el editor para la nueva pestaña?
Demasiado complicado realmente… podría haber algo que podamos hacer con web workers, pero es un cambio enorme que no me gustaría realizar.
Necesito una reproducción exacta paso a paso; nuestra advertencia se activa muy temprano, en el peor de los casos perderías unas pocas palabras. Supongo que si estás desconectado las cosas pueden volverse extrañas, pero es un caso límite importante… la solución es copiar y pegar.
Acabo de echar un vistazo a la publicación original.
No puedo reproducirlo; ¿puedes proporcionar los pasos exactos que llevan a este mensaje incorrecto? Si no estás editando, solo hay un caso límite donde obtienes este mensaje, y podría considerarse incorrecto. Pero es un caso límite muy menor.
Abre la pestaña 1… comienza a redactar una respuesta
Abre la pestaña 2… navega por ahí
En la pestaña 1… continúa redactando
En la pestaña 2… minimiza el editor (recibirás un mensaje de advertencia… pero solo una vez)
Lo que podría estar ocurriendo y causándote problemas:
Abre la pestaña 1… comienza a redactar una respuesta
Abre la pestaña 2… por error citas algo para la respuesta
En la pestaña 1… continúa redactando… la advertencia está presente… persistentemente (porque estaríamos descartando la cita de (2))
Simplemente no estoy seguro de qué arreglar aquí… necesito reproducciones.
Definitivamente he tenido momentos en los que perdí una cantidad significativa de contenido. Sin embargo, por esa razón, he sido cuidadoso al no activar esta advertencia, así que en este punto no recuerdo los pasos exactos que causaron la pérdida significativa.
Creo que el problema podría ser si esto guarda un borrador, sobrescribiendo lo que hiciste en la pestaña 1. Si eso ocurre, podría resultar en una pérdida significativa de contenido. Por ahora es solo una especulación, pero veré si puedo reproducir el problema de esa manera y te lo haré saber.
Entiendo que necesitas pasos reproducibles. He puesto una recordatorio () para revisarlo mañana por la noche. Sería útil saber (a un nivel general) cómo funciona la prueba de conflictos. ¿Se genera un identificador único al cargar la página o algo similar?
Básicamente, quiero decir que si hay una carrera… y dos compositores responden al mismo tema para el mismo usuario… solo uno gana. Cada vez que guardamos, se elige un propietario.
Está bien, @sam, tengo los pasos para reproducirlo. No sé si esto está relacionado con el problema original del OP (ya que esta conversación se ha desviado un poco), pero de todos modos, aquí está lo que tengo. Básicamente, si abres la pestaña 2 pero sigues escribiendo en la pestaña 1 antes de que la pestaña 2 se haya cargado completamente, la nueva página entra en un estado erróneo. Si continúas escribiendo en la pestaña 1 mientras la pestaña 2 aún se está cargando, la pestaña 2 cargará el borrador de la pestaña 1 tal como estaba cuando se abrió la página, pero aún podrás editar en la pestaña 2 incluso después de que la pestaña 1 haya guardado cambios adicionales (sobrescribiendo así esos cambios). Aquí están los pasos para reproducirlo:
Abre el tema A y comienza a redactar una respuesta.
Deja de escribir para que se guarde el borrador.
Abre el tema A en una nueva pestaña (duplicar la pestaña o hacer clic derecho/central en el título del tema es la forma más fácil de reproducirlo, ya que deben cargar la página completa y, por lo tanto, son más lentos).
Inmediatamente continúa redactando la respuesta en la pestaña 1, antes de que la pestaña 2 haya terminado de cargarse.
Deja de escribir para que el borrador se guarde nuevamente (esto se realizará con éxito, como se espera).
Ve a la pestaña 2 y escribe en el editor.
Deja de escribir. El borrador se guardará, incluso aunque debería aparecer una advertencia. Esto sobrescribirá todos los cambios adicionales que hiciste en la pestaña 1 en el paso #4. (Si obtienes la advertencia como se espera, probablemente esperaste demasiado para empezar a escribir en el paso #4.) Ten en cuenta que, en este punto, tampoco puedes escribir en la pestaña 1 de nuevo sin recargar esa pestaña.
Ten en cuenta que en el paso #4, en realidad no necesitas dejar de escribir y guardar un borrador antes de que la pestaña 2 termine de cargarse. Simplemente empezar a escribir es lo que pone todo en un estado erróneo. De hecho, no es poco razonable abrir una pestaña duplicada en segundo plano para revisar cosas más tarde y continuar escribiendo en la pestaña 1 mientras tanto. Pero hacerlo demasiado rápido pondrá las pestañas en un estado erróneo y te permitirá sobrescribir accidentalmente lo que agregaste en la pestaña 1. Por supuesto, minimizar el editor también guarda un borrador, así que una vez que entres en este estado erróneo, simplemente minimizar el editor en la pestaña 2 para quitártelo de encima sobrescribirá tu último borrador de la pestaña 1.
En este punto, si vuelves a la pestaña 1 donde originalmente estabas redactando tu mensaje, ya no podrás escribir y obtendrás la advertencia que debería haber aparecido en la pestaña 2. Si te das cuenta de que se perdió tu borrador, por supuesto, puedes copiar el contenido del editor desde la pestaña 1. Pero si no te diste cuenta y recargas la página (siguiendo las instrucciones de la advertencia), perderás los cambios que hiciste y no tendrás forma de recuperarlos.
Házmelo saber si aún tienes problemas para reproducir el problema con esos pasos. Puedo reproducir el problema de manera bastante consistente siguiendo esos pasos (cambiando ocasionalmente a nuevos temas para obtener borradores frescos), así que espero que eso sea suficiente información.
Muchas gracias por el caso de reproducción; fue espectacular y me ayudó a aislar el problema rápidamente.
Siento que mi respuesta anterior sobre cómo rastreamos las versiones de borrador fue un poco vaga. Creo que se debe a que mi algoritmo fue un poco demasiado ingenuo y sofisticado. Esa es una combinación peligrosa. El nuevo algoritmo es mucho más fácil de explicar.
Cada vez que el cliente guarda un borrador, le indica al servidor el “número de secuencia” que tiene.
Si el número de secuencia coincide, el servidor incrementará el número de secuencia en 1 y se lo devolverá al cliente (nuestro nuevo número de secuencia).
Si el número de secuencia no coincide, el servidor le informará al cliente que hay un conflicto y no guardará el borrador.
Al recargar/cargar la página, el servidor le indica al cliente cuál es el número de secuencia actual.
Mi implementación anterior era demasiado sofisticada; intentaba evitar aumentar el número de secuencia bajo muchas condiciones rastreando el propietario de una secuencia. Tu caso de prueba mostró lo malo que eso es y cómo puede causar pérdida de contenido.
Esto debería estar activo en meta; avísame si encuentras más casos límite en este sistema.
Esto requiere bastante trabajo, cambiando entre pestañas en el navegador, pero sí… el abandono definitivamente no está funcionando como debería en este caso; deberíamos solucionarlo.