Todos los artículos

Web y experiencia de uso

Volver a un formulario con datos no significa que se haya enviado

Una persona escribe, cambia de aplicación y vuelve. El producto debería dejar claro qué conserva y qué falta por hacer. Para diseñarlo, decide primero si existe un borrador, dónde vive y qué evidencia permite mostrar un envío completado.

Equipo editorial de KIURO · Publicado: · Revisado:

Define la promesa antes de elegir un evento

Hay productos que conservan un borrador y otros que explican que los datos se pierden al salir. Escoge una política coherente con la tarea y comunícala cerca de la acción. No añadas persistencia solo para superar una comprobación técnica: también crea una responsabilidad sobre lo que se guarda y durante cuánto tiempo.

Tres estados de producto propuestos
EstadoQué podría afirmar la interfazQué evidencia falta
Datos presentes en pantallaPuedes seguir editandoQue sobrevivan a una recarga
Borrador conservado según políticaPuedes recuperar esta versiónQue se haya enviado al destinatario
Operación aceptada por el servidorTu solicitud fue aceptadaLas siguientes etapas del proceso, si existen

MDN documenta visibilitychange y visibilityState para observar el paso a hidden, por ejemplo al cambiar de pestaña o aplicación. Es una señal para gestionar estado; recibirla no demuestra que un guardado o una petición de red hayan terminado. (MDN Web Docs)

Caso 1: cambiar a otra pestaña y regresar

Rellena un formulario de prueba con texto ficticio y deja un campo a medias. Cambia de pestaña y vuelve. Revisa contenido, foco, validaciones y mensajes de estado. El caso debería permitir distinguir lo que seguía en memoria de lo que la aplicación decidió conservar.

Si hay borrador, comprueba su versión y el momento en que puede mostrarse como guardado. Si la política es mantener datos solo en la pestaña, prueba que el aviso sea comprensible. No conviertas la ausencia de errores en pantalla en evidencia de persistencia.

Caso 2: navegar atrás después de salir

bfcache puede restaurar una página desde memoria, incluido su estado JavaScript. pageshow.persisted permite reconocer esa restauración; pagehide.persisted indica intención de cachear, no garantía. Una vuelta atrás y una carga nueva, por tanto, necesitan comprobaciones diferenciadas. (web.dev / Chrome team)

En el ensayo, sal mediante un enlace y utiliza Atrás. Observa si aparece un formulario recuperado, una confirmación anterior o una pantalla nueva. Decide si los datos relacionados necesitan actualizarse y cómo explicarías al usuario que una confirmación corresponde a una operación previa.

Comprueba especialmente la acción principal: recuperar el aspecto de un formulario no debería disparar otro envío. Si el usuario inicia una nueva acción, el producto necesita tratarla según el estado que conoce el servidor y las reglas de esa tarea.

Caso 3: descarte y recarga

La guía de ciclo de vida advierte de terminaciones y eventos de cierre poco fiables. Freeze, resume y descarte tienen coberturas distintas; no se puede depender de que unload permita guardar al final. Tampoco basta observar hidden para acreditar una persistencia completada. (Chrome for Developers / Philip Walton)

Prepara este caso en los navegadores y dispositivos que hayas definido para la aplicación. Usa las herramientas de prueba apropiadas del navegador y comprueba qué vuelve tras recargar. Documenta versión y condiciones: un resultado en un equipo no acredita todos los demás.

Registro de prueba propuesto; no ejecutado
RecorridoResultado esperado que debe definir el equipoObservado
Cambio de pestañaContinuidad conforme a la políticaPendiente
Cambio a otra aplicaciónEstado y aviso coherentes al volverPendiente
Atrás/AdelanteDistinguir restauración de nueva cargaPendiente
Descarte/recargaRecuperar solo lo que se prometió conservarPendiente
Envío con respuesta inciertaMostrar estado comprobable sin duplicarlo por rutinaPendiente

Prueba también la limpieza y la recuperación incompleta

Define qué campos pueden conservarse, quién puede verlos y cómo desaparecen al finalizar o abandonar la tarea. Incluye una comprobación después de corregir un error y otra después de completar la operación. Usa datos ficticios; estas propuestas no constituyen una prueba realizada sobre una aplicación de KIURO.

La elección técnica depende del producto, sus datos y el entorno. Este artículo no recomienda una biblioteca ni estima un coste universal. Una entrega útil es una política de borrador legible, la matriz de recorridos y evidencias de aceptación del servidor. Desde ahí se puede acordar la revisión de una web o ecommerce sin prometer que toda vuelta atrás equivale a un envío.

Fuentes

Privacidad y analítica

Con tu permiso, Kiuro utiliza Google Analytics 4 para analizar visitas e interacciones, como navegar entre páginas, profundidad de lectura, proyectos, clics de contacto e inicio y envío correcto del formulario. Google también procesa datos de navegador, dispositivo y ubicación aproximada. El proveedor es Google Ireland Limited, en Irlanda; también puede existir tratamiento por Google LLC en Estados Unidos.

No enviamos tu nombre, email ni el contenido de tus mensajes. El almacenamiento publicitario, la publicidad personalizada y Google Signals están desactivados. Google Analytics no se carga antes de tu aceptación.

Tras aceptar, el registro temporal de navegación de esta pestaña es válido durante 30 segundos y se consume al llegar al destino. Tu elección se guarda durante seis meses en este navegador. Las cookies de analítica también se configuran para caducar a los seis meses. Puedes cambiar tu decisión en cualquier momento; rechazar detiene la medición y elimina las cookies de Analytics accesibles de esta web.

Las preferencias de tema claro u oscuro y de animaciones se guardan por separado en tu dispositivo. Contacto: hello@kiuro.ch.