javascript 深度递归引起的堆栈溢出,终极解决方案
来源:互联网 发布:淘宝卖童装怎么样 编辑:程序博客网 时间:2024/05/20 11:47
<Script>var i = 0;function callback( ) { i++; document.writeln(i); if (i == 1000000000) { return; //循环到很多次才返回.ie下一般3000多层就堆栈溢出了, google浏览器相对要大一点一般9500以上.. } else { callback( ); //递归调用 }} callback(i);</script>
上面这段代码在ie下和谷歌,火狐下都会引起堆栈溢出.而得不到全部的运行.
改成下面的就可以了..
<Script>var i = 0;function callback(p1,p2,p3,p4 ) { i++; document.writeln(p1); if (i == 100000) { return; //循环到很多次才返回.ie下一般3000多层就堆栈溢出了, google浏览器相对要大一点一般9500以上.. } else { addTask(callback,0,"参数"+i,"参数2","参数3","参数4"); //递归调用变成了非递归调用 }}/***添加一个任务,* @param {Function} fun 任务函数名* @param {number} delay 定时时间* @param {object} params 传递到fun中的参数*/function addTask(fun, delay) { if (typeof fun == 'function') { var argu = Array.prototype.slice.call(arguments, 2); var f = (function () { fun.apply(null, argu); }); return window.setTimeout(f, delay); } return window.setTimeout(fun, delay);}callback(i);</script>
- javascript 深度递归引起的堆栈溢出,终极解决方案
- Javascript中递归造成的堆栈溢出及解决方案
- Javascript中递归造成的堆栈溢出及解决方案
- 递归有深度,堆栈会溢出。
- 线程堆栈溢出引起的问题
- javascript递归调用,产生堆栈溢出原因
- VS 堆栈溢出的解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 位图引起的内存溢出OutOfMemory解决方案
- 程序员心中的“高山”与“大河”(二)
- Java中类名与文件名的关系
- centos配置svn
- UBUNTU系统上安装QT CREATOR及Mysql
- java 解析/拆分 xml
- javascript 深度递归引起的堆栈溢出,终极解决方案
- C# DataSet、DataTable、DataRow、DataColumn 数据集应用大全
- overview of hevc (二)
- 解决poco与数据库表字段非一一对应的问题
- QT 的信号与槽机制介绍
- [转]图片垂直居中
- 经典:从追MM谈Java的23种设计模式
- canvas标签应用 简单"贪吃蛇"游戏
- C语言 不用循环,输出1到1000