Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 脚本堆栈空间耗尽firefox_Javascript_Jquery_Xml_Mozilla - Fatal编程技术网

Javascript 脚本堆栈空间耗尽firefox

Javascript 脚本堆栈空间耗尽firefox,javascript,jquery,xml,mozilla,Javascript,Jquery,Xml,Mozilla,我正在处理来自web服务的大型XML响应。当我尝试使用URL获取时,一段时间后,Firebug中会显示一个错误“脚本堆栈空间配额已用尽” 如何解决这个问题呢?听起来在处理xml时好像发生了一些递归,这实际上是导致堆栈溢出(以任何名称) 想法: 用更少的数据工作 如果您是手动处理数据,是否尝试使用较少的递归?可能是手动尾部调用或基于队列/堆栈 考虑json—然后您可以将其卸载到脚本主机,以便在不进行任何额外处理的情况下重新水化该对象 您是否尝试过禁用Firebug?从Firefox 3开始,可用

我正在处理来自web服务的大型XML响应。当我尝试使用URL获取时,一段时间后,Firebug中会显示一个错误“脚本堆栈空间配额已用尽” 如何解决这个问题呢?

听起来在处理xml时好像发生了一些递归,这实际上是导致堆栈溢出(以任何名称)

想法:

  • 用更少的数据工作
  • 如果您是手动处理数据,是否尝试使用较少的递归?可能是手动尾部调用或基于队列/堆栈
  • 考虑json—然后您可以将其卸载到脚本主机,以便在不进行任何额外处理的情况下重新水化该对象

您是否尝试过禁用Firebug?

从Firefox 3开始,可用堆栈空间已从4MB降至~=640KB(我在这里传递口碑)

你是不是碰巧在跑FF3


我也有类似的问题,也许是同样的问题。 如果您试图用jQuery$(html)解析一大块html,就会出现这种情况

在我的测试中,这只发生在Windows上的Firefox 3.6.16上。 Ubuntu上的Firefox4.0.1表现要好得多。可能与操作系统无关,只是4.x中的脚本引擎要好得多

解决方案: 而不是

var $divRoot = $(html);
是的

var$temp=$('');/。附加到($('body');//(*)
$temp.html(html);//使用客户端的html解析
变量$divRoot=$('>div',$temp);//或者。孩子们()或者别的什么
//$temp.remove();//(*)
(*) 我记得在某些情况下,在jquery应用任何选择器之前,您需要将temp节点添加到主体中。然而,在这种情况下,如果没有这一点,它似乎工作得很好


在FF 4.x上完全没有区别,但它确实允许避免FF 3.x上的堆栈空间溢出错误。

这是一个好主意,只是为了确保问题出在firefox本身
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();  // (*)