JS异常: Uncaught RangeError: Maximum call stack size exceeded

本文记录了解决一个常见的JavaScript错误“Maximum call stack size exceeded”的过程。通过排除重复引入JS文件导致的问题,最终定位到公共JS文件的重复加载,并提供了解决方案。

   最近经常遇到1个JS异常,Chrome运行,偶尔有问题,想复现的时候,却又不出来。

jquery-2.1.4.min.js?_=1498552203335:3 Uncaught RangeError: Maximum call stack size exceeded.
    at HTMLDivElement.trigger (jquery-2.1.4.min.js?_=1498552203335:3)
    at Object.trigger (jquery-2.1.4.min.js?_=1498552203335:3)
    at HTMLDivElement.<anonymous> (jquery-2.1.4.min.js?_=1498552203335:3)
    at Function.each (jquery-2.1.4.min.js?_=1498552203335:2)
    at n.fn.init.each (jquery-2.1.4.min.js?_=1498552203335:2)
    at n.fn.init.trigger (jquery-2.1.4.min.js?_=1498552203335:3)
    at n.eval (eval at globalEval (jquery-2.1.4.min.js?_=1498552195035:2), <anonymous>:6:16198)
    at HTMLDocument.f (jquery-2.1.4.min.js?_=1498552203335:2)
    at HTMLDocument.dispatch (jquery-2.1.4.min.js?_=1498552203335:3)

    at HTMLDocument.r.handle (jquery-2.1.4.min.js?_=1498552203335:3)



  不过,今天又在网上喵了几眼,来了灵感。

http://blog.youkuaiyun.com/jston_learn/article/details/7799232

这篇文章说的是其中1种原因,大致瞧了瞧,感觉好复杂。

还有Stackoverflow之类的答案,都是列出了现象和常见例子,但是并不能解决我的问题。


灵感:函数递归调用,不还是“重复”的一种例子么。

会不会是我的代码里,重复引入了1个js了。


还真是。


我的项目情况:

A主体列表页->B新增对话框-加载1个新页面--C在新增对话框页面里,再选择用户。

B和C里都引入了公共的js。

把C页面里公共js去掉就行了,让他直接使用B父页面引入的。


为了验证缓存等情况,把Chrome缓存和Cookie所有数据清了,反复新增,又出现了刚刚的问题。

让人崩溃。

同样的道理,把B页面,引入公共的js,也去掉了。

让B直接使用A父页面的。


再次清除Chrome缓存和Cookie,Ok了。


2017年6月27日

朝林A座


评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值