Rullst AcademyRullst Academy/Lección
Aplicaciones con Rullst I · Lección 10 / 14

Conectar sin perder el contexto

La red puede fallar antes o después de una escritura.

Rutas de aprendizaje20 min

Vamos a descubrir juntos

  1. 1

    web/app.js usa fetch para listar, crear y completar. response.ok cubre 200–299; fetch normalmente resuelve la Promise incluso para 422 o 503. Una respuesta de error debe comprobarse, no confundirse con éxito solo por llegar.

  2. 2

    El formulario conserva el título si no confirma la creación. Tras un 201 puede borrarlo: la creación se confirmó aunque falle la actualización posterior de la lista. busy bloquea doble clic local; no evita duplicación por otro cliente o por repetir luego la llamada.

  3. 3

    Si cae la conexión, quizá el servidor ya escribió y se perdió la respuesta. Por eso el mensaje pide actualizar antes de repetir POST. La creación no tiene reintento automático. Compruébalo con un fallo controlado del laboratorio, sin afectar otros servicios.

  4. 4

    Los títulos se insertan con textContent, no innerHTML. Escribe <em>Orbit</em>: debe aparecer literalmente, no como marcado. La seguridad depende del contexto; textContent sirve para texto de un nodo, no para cualquier URL, CSS u otro destino.

Tu mesa de aplicaciones

El kit incluye la aplicación completa para investigar y modificar. El fragmento explica esta etapa; el editor contiene el archivo indicado. Rullst Academy no compila ni ejecuta este servidor en el navegador.

Archivo para estudiar y modificar

web/app.js

const response = await fetch("/api/missions");
if (!response.ok) throw Error("Request failed");
const items = await response.json();
text.textContent = item.title;

Extrae el kit en una carpeta nueva y abre el terminal junto a Cargo.toml. Usa Rust 1.96+; la primera compilación puede descargar dependencias y tardar. Abre http://127.0.0.1:3010. Detén con Ctrl+C y ejecuta de nuevo tras editar.

cargo test --locked
cargo run --locked
Mis archivos y GitHub

Descarga tu borrador y sustituye el archivo indicado en tu copia extraída. El editor guarda un archivo en este navegador; tu cuenta guarda evaluaciones y XP. El ZIP excluye tus cambios. GitHub envía solo el archivo confirmado; usa Git manual para la aplicación entera, sin bases, respaldos ni secretos.

Enlaces oficiales y siguiente paso

✦
TU MISIÓN

Tratar respuestas HTTP y fallos de red preservando la comprensión del usuario.

Ahora te toca

Taller de descubrimientos

Decide antes de ejecutar

Tratar respuestas HTTP y fallos de red preservando la comprensión del usuario.
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Cómo mostrar un título con <em> sin interpretarlo como HTML?

Necesito una pista

El título es dato textual. Elegir la API de salida adecuada evita convertirlo en marcado ejecutable.

Cargando tu camino…

Llévatelo contigo

Detén solo tu servidor e intenta enviar una tarea ficticia. Revisa el mensaje y la conservación del formulario. Reinicia, actualiza y explica por qué un fallo de red no demuestra que no se escribió nada.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.