Tengo una aplicación que permite a un usuario ver detalles sobre un caso específico sin una devolución de datos. Cada vez que un usuario solicita datos del servidor, despliegue el siguiente marcado.Cómo deshacerse de los elementos DOM en JavaScript para evitar fugas de memoria
<form name="frmAJAX" method="post" action="Default.aspx?id=123456" id="frmAJAX">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" />
</div>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" />
</div>
<div id="inner">
<!-- valid info here --!>
</div>
</form>
siguiente que tome lo anterior y InnerHtml a un nuevo elemento DOM, así:
success: function(xhtml) {
var tr = document.createElement('tr');
var td = document.createElement('td');
var container = document.createElement('div');
obj.parentNode.parentNode.parentNode.insertBefore(tr, obj.parentNode.parentNode.nextSibling);
td.appendChild(container);
container.innerHTML = xhtml;
tr.appendChild(td);
pero después de lo anterior, utilizar algunos jQuery para eliminar la Red PEA desagradable basura
$('form:eq(1)').children().each(
function() {
if ($('form:eq(1)').find('div').filter(function() { return $(this).attr('id') == ''; }).remove());
}
);
//Capture the remaining children
var children = $('form:eq(1)').children();
// Remove the form
$('form:eq(1)').remove();
// append the correct child element back to the DOM
parentObj.append(children);
Mi pregunta es esta: cuando utilizo IESieve, no observo filtraciones reales, sino un número cada vez mayor de elementos DOM (por lo tanto, uso de memoria).
¿Qué puedo mejorar en el lado del cliente para realmente limpiar este desastre? Nota: ambos IE7/8 muestran estos resultados.
EDIT: finalmente conseguí que esto funcionara y decidí escribir un blog post corto con el código fuente completo.
realmente se debe aceptar una respuesta a esta pregunta ahora .... – Blazemonger
puede actualizar URL al blog de correos? – Christian
@Christian acaba de hacer (lo siento por el enlace roto) –