IE浏览器apply使用时堆栈溢出
2016-03-10 11:13
746 查看
发现 var str = String.fromCharCode.apply(null,arr);时由于arr数组太长,会导致IE浏览器报出“堆栈溢出”的错误。
但谷歌浏览器不会产生这种错误。
我的理解是,其实相当于IE浏览器执行了arr.length深度的递归。导致ie堆栈溢出了。网上查IE递归据说只支持3000层,
所以我用了一个最笨的解决方法,直接写
var str='';
for(var i;i<arr.length;i++){
str+=String.fromCharCode(arr[i]);
}
自己不是专业的搞前端,一直写服务端,最近开始接手了一个Chrome向IE兼容的工作,也只能是在工作中摸索了。
阅读更多相关文章推荐
- F#学习存疑求解答:关于使用Cotinuation仍然堆栈溢出的问题
- 在AIX上用IBM的JVM,内存溢出时默认地会产生javacore文件(关于cpu的)和heapdump文件(关于内存的)。手动产生堆栈文件的方法是使用kill -3
- Python 使用单链表实现堆栈 (基于class, 包含迭代器)
- [转贴]window系统下的远程堆栈溢出 --《实战篇》
- IE浏览器中js使用中文标识符的bug
- [转]在IE浏览器中使用Windows窗体控件
- 如何使用 Editbin 调整 SQL Server 线程的堆栈大小(dump)
- PHP使用数组实现堆栈和队列
- Linux下使用函数打印程序堆栈错误的方法
- 数据结构---->堆栈的使用
- size_t的使用中出现的vector溢出问题
- js中apply方法的使用
- STM32之程序如何防止堆栈溢出
- 添加IFrame导致内存溢出的解决过程(IE浏览器,目前发现了原因,还未解决)
- 九度oj-1108-堆栈的使用
- 如何使用call和apply
- DDMS的使用、内存溢出的调试
- 用C语言堆栈操作的计算器的实现(输入输出流使用的C++)
- Effective JavaScript Item 21 使用apply方法调用函数以传入可变參数列表
- 不使用调试器查看堆栈的调用情况(CallTrace)