为我的递归javascript提供喘息的机会我试图使用延迟来避免脚本在浏览器中崩溃。
以下是用于调用函数的代码段。
setTimeout(function () {
recursiveGenerateTree(objNode.NodeList[cntLi], spnApplyClass, '', objEditParam)
}, 50);
似乎没有调用该函数,没有任何出路
答案 0 :(得分:1)
尝试将50更改为更大的值...该值以毫秒为单位。使用1000或2000而不是50。
答案 1 :(得分:1)
setTimeout 在间隔后调用一次函数,然后不再调用它。我认为最好使用 setInterval 。然后将在间隔中调用该函数。
你可以尝试
$(document).ready( function(){
setInterval(function () {
recursiveGenerateTree(objNode.NodeList[cntLi], spnApplyClass, '', objEditParam)
}, 50);
});
答案 2 :(得分:0)
这可能发生的一个原因是你的objNode
为空,因此当函数准备调用时,它的评估会停止它。为了更好地解释,在调用recursiveGenerateTree
函数之前,需要首先评估其参数。如果上述符号为null,则其成员访问.NodeList[cntLi]
将失败。
答案 3 :(得分:-3)
我猜你必须把这个函数放在setTimeOut
之外这样的事情:
function myfunction(){
recursiveGenerateTree(objNode.NodeList[cntLi], spnApplyClass, '', objEditParam)
}
setTimeout( myfunction , 50);