Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
¿Cómo eliminar la biblioteca de la memoria en JavaScript?

Hay múltiples bibliotecas en las que cada una de ellas genera algunos elementos HTML que se ejecutan por separado, de modo que al ejecutar una biblioteca, primero se deben eliminar los elementos creados por la biblioteca anterior y luego se generarán nuevos elementos. Funcionó bien, los elementos se eliminaron correctamente y los nuevos se crearon correctamente.

Pero hay un problema: la biblioteca anterior que se ejecuta, vuelve a existir en la memoria y escucha eventos. ¿Cómo puedo eliminar eso de la memoria?

 import { LeftSidebarEditor } from './editor/LeftSidebar.Editor.js'; import { LeftSidebarSupport } from './support/LeftSidebar.Support.js'; function LeftSidebar(editor) { var signals = editor.signals; var container = new UIPanel(); container.setId('left-sidebar-menu'); var item = new LeftSidebarEditor(editor); container.add(item); signals.scopeChanged.add(function (scope) { editor.currentScope = JSON.stringify(scope); // remove all elements container.clear(); item = null; switch (scope) { case 'editor': // container.add(new LeftSidebarEditor(editor)); item = new LeftSidebarEditor(editor); container.add(item); break; case 'support': // container.add(new LeftSidebarSupport(editor)); item = new LeftSidebarSupport(editor); container.add(item); break; } }); return container; }

LeftSidebarSoporte

 class LeftSidebarSupport { constructor(editor) { let counter = 0; setInterval(() => { console.log('I am alive from support', counter++); }, 2000); signals.objectSelected.add(function (object) { if (object != null) { return; } const selected = document.querySelector('#left-sidebar-menu li.selected'); if (selected){ let selected_attr = selected.getAttribute('data-tooltip'); if (selected_attr!='Tag'){ removeAllSelected(); } } }); function removeAllSelected() { const selected = document.querySelector('#left-sidebar-menu li.selected'); if (selected) { selected.classList.remove('selected'); } } } }

¡Al cambiar la señal de support a editor nuevamente, los registros impresos deben detenerse! Quiero que, al cambiar entre ámbitos, solo exista la biblioteca de ámbitos actual en la memoria y otros se eliminen por completo.

 I am alive from support 89 I am alive from support 90 I am alive from support 91 I am alive from support 92 I am alive from support 93

¡Por favor, nota!

Realmente no hay intervalo, pero existe un fragmento de código que elimina una clase de los elementos. Para simplificar, aquí se usa el ejemplo del intervalo. La base de mi pregunta es ¿por qué se puede volver a ejecutar LeftSidebarSupport?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda