Me disculpo si es una pregunta duplicada, pero primero busqué en Google sin obtener una respuesta útil.
Estaba haciendo un trabajo de visualización de resultados de búsqueda, y cada resultado de búsqueda tiene un botón que muestra información sobre herramientas, aquí está el código simplificado, ya están funcionando bien para mí:
let searchAndDisplayResults = (function () { let tooltips; return (key) => { // search results container let searchContainer = $('.search-results-container'); // clear elements first searchContainer.html(''); // get search results information array let searchedResultsArray = getSearchedResults(key); // render search results to page(simplified) searchedResultsArray.forEach((ele) => { searchContainer.append(`<div>${ele}</div><i class='bi-plus' data-bs-toggle="tooltip" title="Some hint for this button"></i>`); } // enable tooltip tooltips = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map(tooltipTriggerEl => { return new bootstrap.Tooltip(tooltipTriggerEl) }); } })(); Nota: el código que habilita la información sobre herramientas anterior es de aquí .
Cada vez que se pasa una nueva clave de búsqueda a la función, los elementos de los resultados de búsqueda antiguos se destruirán y los nuevos resultados de búsqueda se volverán a presentar, pero parece que la información sobre tooltips sigue siendo variable y no se elimina cada vez que se vuelven a presentar los resultados de búsqueda.
Entonces, para ahorrar el consumo de memoria del navegador, me pregunto si necesito eliminar la matriz de información sobre herramientas cada vez que se vuelven a generar los resultados de búsqueda. Por ejemplo, ¿debería usar un código como el siguiente para destruir información sobre tooltips variables cada vez que se muestran nuevos resultados de búsqueda?
if (tooltips != null) { for (let tooltip of tooltips) { delete tooltip; } }No, no es necesario. Hacer información sobre tooltips = something eliminará la referencia de la matriz de información sobre tooltips anterior. Siempre que no haya ninguna otra referencia a la información sobre tooltips , se recolectará como basura.