Contenido verificado asociado a este RA
Fundamentos de la Ejecución Web: Cliente vs. Servidor
Esta unidad explora los modelos fundamentales de ejecución de código en aplicaciones web, diferenciando claramente entre el lado del cliente y el lado del servidor. Se analizan sus roles, ventajas, desventajas y cómo interactúan para construir una experiencia web completa.
El Navegador Web como Plataforma de Ejecución
Esta unidad detalla las capacidades internas de los navegadores web, explicando cómo interpretan y ejecutan el código del lado del cliente. Se cubren los componentes clave como el motor JavaScript, el DOM y el BOM, y cómo estos permiten la interactividad y manipulación de la página.
Lenguajes de Programación para Clientes Web: Panorama y Particularidades del Scripting
Esta unidad identifica y caracteriza los principales lenguajes relacionados con la programación de clientes Web, situando a JavaScript como estándar dominante junto a alternativas históricas y actuales (VBScript, Java Applets, ActionScript, TypeScript, CoffeeScript, WebAssembly). A partir de ahí, se profundiza en las particularidades de JavaScript como lenguaje de guiones (scripting), comparando sus ventajas y desventajas frente a la programación tradicional compilada.
Integración de Lenguajes y Herramientas para el Desarrollo Cliente
Esta unidad explora cómo los lenguajes de marcas (HTML, CSS) se integran con JavaScript para construir interfaces web dinámicas. Además, se identifican y evalúan las herramientas esenciales que un desarrollador utiliza para programar, depurar y optimizar el código del lado del cliente.
Conceptos clave
Ejecución en el clienteEjecución en el servidorRequest-ResponseDOM (Document Object Model)AJAX (Asynchronous JavaScript and XML)Single Page Application (SPA)Motor JavaScriptMotor de RenderizadoBOM (Browser Object Model)Event LoopSingle-threadedSame-Origin PolicyCORSJavaScriptECMAScriptScriptingCompilación JITTipado dinámico
Errores que conviene evitar
- Confundir dónde se ejecuta el código: Un error común es pensar que todo el código de una aplicación web se ejecuta en el servidor o todo en el cliente. Causa: Falta de comprensión de la arquitectura cliente-servidor. Corrección: Analizar la función de cada parte del código (generación de contenido vs. interactividad) para determinar su lugar de ejecución.
- Subestimar la latencia del servidor: No considerar que cada solicitud al servidor implica un tiempo de espera. Causa: Asumir que las respuestas del servidor son instantáneas. Corrección: Diseñar la aplicación para minimizar las recargas de página y utilizar técnicas asíncronas en el cliente cuando sea posible.
- Bloquear el hilo principal de JavaScript: Ejecutar operaciones computacionalmente intensivas de forma síncrona. Causa: Falta de comprensión del Event Loop y la naturaleza single-threaded de JS. Corrección: Utilizar APIs asíncronas (ej. `setTimeout`, `fetch`, `Web Workers`) para tareas largas.
- Ignorar la Same-Origin Policy: Intentar acceder a recursos de otro dominio sin configuración adecuada. Causa: Desconocimiento de las restricciones de seguridad del navegador. Corrección: Configurar CORS en el servidor o usar proxies si es necesario.
- Depender solo de la validación cliente: asumir que la validación en JavaScript es suficiente para la seguridad. Causa: olvidar que el cliente puede inspeccionar y modificar el código. Corrección: duplicar siempre la validación en el servidor.
- Escribir código JavaScript monolítico: crear scripts muy largos y sin modularidad. Causa: falta de comprensión de buenas prácticas de scripting. Corrección: modularizar el código mediante funciones, objetos o módulos ES, y considerar TypeScript o frameworks en proyectos grandes.
- Confundir lenguajes de marcado/estilo con lenguajes de programación: tratar HTML o CSS como si tuvieran capacidades de programación equivalentes a JavaScript. Causa: desconocimiento de que HTML/CSS carecen de lógica de control propia. Corrección: reservar JavaScript (o TypeScript transpilado) para la lógica de programación, usando HTML/CSS únicamente para estructura y presentación.
- Mezclar JavaScript y HTML/CSS: Escribir estilos inline o lógica JS directamente en el HTML. Causa: Falta de separación de preocupaciones. Corrección: Usar archivos JS y CSS externos, y manipular el DOM/clases con JavaScript.