Resumen del Proyecto
El Desafío
Solución Técnica e Implementación
- Renderizado Optimizado del DOM: Uso de etiquetas
<template>yDocumentFragmenten JavaScript para clonar nodos e inyectar el lote completo de tarjetas en una sola operación, reduciendo drásticamente el impacto en el paint del navegador. Flujo Asíncrono y Feedback Visual: Manejo de peticiones HTTP mediante
async/awaitestructurado con bloquestry...catch...finallypara controlar un spinner de carga dinámico mientras se obtienen los datos.Badges Condicionales con Posicionamiento Absoluto: Integración de componentes
badgede Bootstrap conposition-absolutepara desplegar el estado del personaje (Alive,DeadoUnknown), evaluado dinámicamente mediante estructuras de control para asignar estilos de color contextuales (text-bg-success,text-bg-danger,text-bg-secondary).Arquitectura de Selectores Escalable: Sustitución de IDs repetidos por clases CSS dentro del flujo de iteración (
.forEach), evitando colisiones en el DOM y garantizando estándares HTML correctos.
Características Destacadas
Grid Responsiva Adaptativa: Sistema de columnas de Bootstrap 5 ajustado a diferentes breakpoints (
col-md-6 col-lg-3) con reglas CSS personalizadas en la imagen (object-fit: cover) para mantener el encuadre óptimo en móviles y escritorio.Componentes Modulares: Tarjetas estructuradas con separación de
card-bodyycard-footerpara organizar la jerarquía de información (especie, género y origen).Cero Dependencias de Frameworks JS: Lógica construida 100% en JS Vanilla puro, demostrando dominio de las APIs nativas del navegador.
Resultados
Rendimiento Frontend: Interfaz fluida con inyección masiva de nodos sin degradación de velocidad gracias al uso de
DocumentFragment.Código Limpio y Mantenible: Separación clara entre la estructura HTML, las reglas responsivas CSS y la lógica de consumo de datos en JS.
Despliegue Continuo: Publicación y hosting automatizado a través de GitHub Pages.


