Pregunta

Estoy trabajando con una gran respuesta XML de un servicio web. Cuando trato de obtener eso usando una URL, después de un tiempo muestra un error en Firebug que la cuota de espacio de la pila de scripts " se ha agotado " ¿Cómo puedo resolver eso?

¿Fue útil?

Solución

Se suena como si hubiera algo de recursión cuando se procesa el xml, lo que esencialmente provoca un desbordamiento de pila (por cualquier nombre).

Pensamientos:

  • trabajar con menos datos
  • si está procesando los datos manualmente, ¿intenta usar menos recursividad? tal vez manual basado en cola o cola / pila basada
  • considere json: luego puede descargar al host del script para rehidratar el objeto sin ningún procesamiento adicional

Otros consejos

¿Has intentado deshabilitar Firebug?

A partir de Firefox 3, el espacio disponible de la pila se ha reducido de 4MB a ~ = 640KB (estoy transmitiendo el boca a boca aquí).

¿Estás ejecutando FF3?

https://bugzilla.mozilla.org/show_bug.cgi?id=420874

Tuve un problema similar, tal vez el mismo. Esto puede suceder si intentas analizar una gran parte de html con jQuery $ (html).

En mis pruebas, esto solo sucedió en Firefox 3.6.16 en Windows. Firefox 4.0.1 en Ubuntu se comportó mucho mejor. Probablemente no tenga nada que ver con el sistema operativo, solo el motor de script en 4.x es mucho mejor ..

Solución: En lugar de

var $divRoot = $(html);

Lo hice

var $temp = $('<div style="display:none;">');  // .appendTo($('body'));  // (*)
$temp.html(html);  // using the client's html parsing
var $divRoot = $('> div', $temp);  // or .children() or whatever
// $temp.remove();  // (*)

(*) Recuerdo que en algunos casos es necesario agregar el nodo temporal al cuerpo, antes de que jquery pueda aplicar cualquier selector. Sin embargo, en este caso, parecía funcionar bien sin eso.

No hubo absolutamente ninguna diferencia en FF 4.x, pero sí permitió evitar el error de desbordamiento de espacio de pila en FF 3.x.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top