Agregar elementos HTML sin reemplazar contenido existente
Clase 11 de 27 • Curso de JavaScript: Manipulación del DOM
Contenido del curso
- 6

Atributos y Propiedades en HTML y su Manipulación con JavaScript
07:39 - 7

Modificar texto en HTML con JavaScript
04:50 - 8

Modificar Estilos CSS con JavaScript: Propiedad Style y ClassName
11:30 - 9

Uso de classList para Manipular Clases en Elementos HTML
07:38 - 10

Manipulación del DOM con innerHTML e InsertAdjacentHTML
09:47 - 11

Agregar elementos HTML sin reemplazar contenido existente
05:18 - 12

Creación y Manipulación de Elementos DOM con createElement
13:28 - 13

Eliminar Elementos del DOM con JavaScript: Métodos y Ejemplos
05:43 - 14

Clonación y Reemplazo de Elementos en JavaScript
12:47
- 15

Eventos y Flujo en Programación Web: Capturing y Bubbling
05:03 - 16

Manejo de Eventos en JavaScript: click, mouseOver y mouseOut
11:46 - 17

Manipulación de Eventos en JavaScript para Interacción de Elementos
07:35 - 18

Validación de Formularios con JavaScript: Prevenir Comportamiento por Defecto
10:06 - 19

Delegation Pattern en JavaScript: Mejora de Eventos Click en Listas
09:30
- 20

Creación de un Task Manager con Persistencia usando Local Storage
09:01 - 21

Interactividad en Botones de Tareas: Borrar y Editar en JavaScript
13:37 - 22

Persistencia de Datos con Local Storage en Tareas Web
15:17 - 23

Guardado y edición de tareas en local storage con JavaScript
10:59 - 24

Manejo de Errores en Local Storage para Tareas Dinámicas
03:24 - 25

Cambio de Tema Dinámico y Persistente en Aplicaciones Web
07:18 - 26

Creación de Páginas Web Dinámicas con JavaScript
01:28
¿Cómo se puede agregar un nuevo elemento a una lista sin reemplazar el contenido existente?
El uso de innerHTML para modificar dinámicamente el contenido de una página web es común, pero a veces puede presentar desafíos si no se gestiona adecuadamente el rendimiento. Aquí te explicamos cómo agregar elementos HTML a una lista existente sin reemplazar los elementos ya presentes.
¿Qué problemas podrías enfrentar usando innerHTML?
La transformación de contenido utilizando innerHTML podría parecer una solución sencilla y directa. Sin embargo, esto implica algunos compromisos en cuanto a rendimiento:
- Al usar
innerHTMLen conjunto con el operador+=, se concatena el nuevo contenido HTML a lo que ya existe. No obstante, esto provoca que se re-renderice todo el documento dentro del contenedor. - Este enfoque es aceptable con una cantidad limitada de elementos, pero si estás tratando con miles o millones de elementos, el impacto en el rendimiento puede ser considerable, ya que cada modificación obligará a re-renderizar todo el contenido.
¿Cómo evitar problemas de rendimiento al agregar elementos?
Para agregar elementos sin reemplazar el contenido existente y sin comprometer el rendimiento de la página, se recomienda el uso de insertAdjacentHTML. Este método permite insertar nuevo contenido de HTML en una posición específica dentro de la lista, evitando así el proceso de re-renderizado completo.
Aquí te detallamos cómo hacerlo:
// Selecciona el contenedor padre por su ID
const listArea = document.getElementById('listArea');
// Agrega un nuevo elemento de lista sin causar un re-renderizado completo
listArea.insertAdjacentHTML('beforeend', '<li>Item número 6</li>');
¿Cuál es la ventaja de usar insertAdjacentHTML?
La principal ventaja de insertAdjacentHTML es su capacidad para insertar contenido HTML en posiciones específicas (como antes o después de otros elementos, o dentro del primer o último hijo) sin forzar el redibujado de toda la lista.
Al usar insertAdjacentHTML, puedes especificar posiciones como:
beforebegin: antes del elemento actual.afterbegin: justo dentro del elemento actual, antes del primer hijo.beforeend: justo dentro del elemento actual, después del último hijo.afterend: después del elemento actual.
En el ejemplo proporcionado, al usar beforeend, se asegura de que el nuevo elemento se añade al final de la lista ya existente, manteniendo todos los elementos previos intactos.
Conclusión
Al manipular el DOM para agregar nuevos elementos en una lista, es crucial considerar técnicas que minimicen el impacto en el rendimiento y eviten innecesarios re-renderizados completos de los elementos. Métodos como insertAdjacentHTML facilitan operaciones eficientes y contribuyen a la optimización del desempeño de una aplicación web, garantizando así una mejor experiencia para el usuario final. ¿Te animas a probarlo en tus propios proyectos?