`
sunyongce
  • 浏览: 7329 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

IE浏览器apply使用时堆栈溢出

 
阅读更多

发现 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兼容的工作,也只能是在工作中摸索了。

分享到:
评论

相关推荐

    apply应用小结

    标题中的“apply应用小结”指的是JavaScript中函数对象的一个关键特性——`apply()`方法的使用总结。`apply()`是JavaScript中函数对象的一个方法,它允许我们调用一个函数,并可以自定义函数执行时的上下文(`this`...

    SQL Server CROSS APPLY和OUTER APPLY的应用详解

    CROSS APPLY用于执行内联联接,它会将右表表达式应用到左表表达式的每一行,但只有当右表表达式返回非空结果时,才会将该行包含在最终结果集中。这意味着,如果左表的一行在应用右表表达式后没有匹配的值,那么这...

    JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案

    在本文中,我们将探讨在使用Bootstrap Table组件实现冻结列功能时遇到的IE浏览器兼容性问题,并提供一种解决方案。 Bootstrap Table 是一个流行的JavaScript组件,用于创建美观、响应式的表格。然而,在某些IE浏览...

    eclipse内存溢出报错-解决办法

    然而,在使用过程中,用户可能会遇到“eclipse内存溢出报错”的问题,这一现象通常表现为Java.lang.OutOfMemoryError: Java heap space错误,这主要源于Eclipse运行时分配给Java虚拟机(JVM)的内存不足,导致程序...

    js中call,apply,setCapture,releaseCapture的使用.pdf

    `setCapture`和`releaseCapture`是IE浏览器特有的事件处理机制,主要用于处理HTML元素的鼠标事件。`setCapture`方法使得指定元素能够捕获所有的鼠标事件,即使鼠标离开了该元素,事件仍然会触发,直到调用`...

    myeclipse-tomcat jdk内存溢出

    在使用MyEclipse进行Java Web开发时,经常会遇到Tomcat服务器启动后出现JVM内存溢出的问题。这种情况通常表现为应用程序运行过程中突然崩溃,并伴随着错误提示:“OutOfMemoryError”。这种错误不仅会影响开发效率,...

    SQLServer APPLY表运算符使用介绍

    APPLY运算符分为两种类型:CROSS APPLY和OUTER APPLY,它们在处理数据时有显著的区别。 CROSS APPLY用于将右表表达式的结果应用到左表的每一行,只有当右表的表达式对左表的每一行都有返回值时,才会在结果集中显示...

    JavaScript中call与apply方法

    JavaScript中call与apply方法

    eclipse内配置处理内存溢出

    在使用Eclipse进行Java开发时,可能会遇到应用程序运行过程中出现“OutOfMemoryError”(内存溢出错误)。这类错误通常发生在Java虚拟机(JVM)无法为新对象分配足够的内存空间时,常见原因包括堆内存不足、永久代...

    在IE浏览器中resize事件执行多次的解决方法

    在IE浏览器中,resize事件可能会遇到一个问题,即在用户调整窗口大小时,该事件会被频繁地触发,导致处理函数被执行多次。这个问题不仅影响性能,还可能由于事件处理过程中的复杂计算,特别是在IE浏览器中,引发...

    安装MySql时apply security settings报错解决方法

    遇到“apply security settings”错误时,首先应确保彻底清除系统中旧的MySQL配置,调整环境变量,使用管理员权限安装,并暂时关闭安全软件。如果问题依然存在,尝试手动配置安全设置是一个可行的选择。通过以上步骤...

    apply.js ES5的apply手写实现

    ES5的apply手写实现

    JS apply用法总结和使用场景实例分析

    在使用apply方法时,参数的传递规则是`fn.apply(this, [params1, params2, ...])`。数组中的元素将按顺序被展开成独立的参数传递给`fn`函数。 6. 绑定this和null 当使用apply绑定this时,如果绑定的this值为null或...

    Eclipse内存溢出

    内存溢出(Memory Leak)是指程序运行过程中使用的内存超过系统所能提供的最大内存限制时所出现的问题。这种情况通常发生在Java等需要进行垃圾回收的语言中。当应用程序创建的对象没有被适当地释放或回收时,就会...

    js中apply方法的使用详细解析.docx

    同样,当需要将数组中的元素逐个添加到另一个数组尾部时,可以使用`Array.prototype.push.apply(arr1, arr2)`,而不是手动地遍历数组进行追加,这同样提高了性能。 3. **使用`apply`进行函数调用** 除了在继承场景...

    【zk开发】use和apply的区别

    在Java编程语言中,`use`和`apply`这两个关键字并不是原生支持的。然而,它们经常在一些框架或库中出现,特别是函数式编程场景,例如在Scala、Clojure等语言中。在这个讨论中,我们将主要关注`apply`方法在Java中的...

    Eclipse + Tomcat 内存溢出参数设置

    在Java开发过程中,特别是在使用Eclipse作为集成开发环境(IDE)并结合Apache Tomcat服务器进行Web应用开发时,经常会遇到内存溢出的问题。这类问题通常表现为应用程序运行过程中出现OutOfMemoryError(OOM)错误,...

    关于JS数组追加数组采用push.apply的问题

    JS数组追加数组没有现成的函数,这么多年我已经习惯了a.push.apply(a, b);这种自以为很酷的,不需要写for循环的写法,一直也没遇到什么问题,直到今天我要append的b是个很大的数组时才遇到了坑。

    excanvas.compiled.zip

    然而,Canvas在IE5、IE6、IE7、IE8等早期版本的IE浏览器上是不被支持的,这给开发者带来了困扰,因为这些老版本的浏览器仍然在一部分用户中使用。 Excanvas项目由G_v2.0开发,它的主要目标就是通过JavaScript模拟...

    REDIS_APPLY.zip

    5. **依赖项管理**:为了使用StackExchange.Redis库,开发者通常会使用NuGet包管理器来添加库的引用。在项目中,可能有一个`.csproj`文件,记录了所需的库版本和其他依赖。 6. **工具类**:`工具類`文件夹可能包含...

Global site tag (gtag.js) - Google Analytics