“不能执行已释放的Script代码”错误的原因及解决办法

男装519888199

男装519888199

2016-02-19 09:06

有了下面这个“不能执行已释放的Script代码”错误的原因及解决办法教程,不懂“不能执行已释放的Script代码”错误的原因及解决办法的也能装懂了,赶紧get起来装逼一下吧!
很多web开发者或许都遇到过这样的问题,程序莫名奇怪出现“不能执行已释放Script的代码”,错误行1,列1.对于这种消息描述不着边,行列描述更是让人迷茫的js错误,相信是所有调试js程序的朋友们最郁闷也最憎恨的事情!遇到这种问题,最简单的办法直接把错误贴到baidu或google那个小输入框中让他们先给点指点,再去解决,可这次却没有这么容易,在baidu搜索似乎很多人都遇到过这种问题,但是都是些什么qq空间错误,狂晕,或者就是只有问没有答的,闷!

   这种错误从何调起?后面没办法,又是猜测又是try...catch蹦错误,找了半天终于找到错误的位置,可是发现写的并没有什么问题,后来绞尽脑汁思考程序的解释过程,确依旧没有什么头绪。继续baidu,突然在某网页中看到一句话:当一个页面关闭时会自动释放页面的js。短短一句话给了我不小的启发。检查我的程序是否有页面的关闭或转向,发现是执行了转向,然后再回到这个页面时出现了错误。突然间觉得明白了。

场景:页面有a和b两个框架页iframe,在b页面中通过js将一个函数引用(函数指针)传入到a页面并保存在a页面的一个变量中,a页面可以通过这个引用操作b页面或执行b页面的一些程序,记住:此时在a页面中的变量保存的是b页面某函数的指针(内存地址),当b页面刷新或重定向后由于b页面重新构建,所以b页面中的函数指针就发生了变化,但a中仍然保存着b页面刷新前传过来的指针(内存地址),这时a页面中变量通过所指向的指针地址就无法访问到b页面中对应的函数了(因为函数指针地址已经发生了变化,及原来的内存指针已经释放),这样在执行时就会出现“不能执行已经释放的Script代码”的错误。

解决办法:在a页面中加上容错处理,当引用出现错误时要将保存的引用(函数指针)清空或指向一个默认的函数。另外在b页面再次载入时要重新给a页面传送函数引用,这样就不会出现这样的错误了。

或许这里的描述有些过于抽象了,看一个演示再看看代码就容易明白了,先test,然后return url,之后再test就会出现这个问题了。
展开更多 50%)
分享

猜你喜欢

“不能执行已释放的Script代码”错误的原因及解决办法

Web开发
“不能执行已释放的Script代码”错误的原因及解决办法

出现“不能执行已释放的Script代码”错误的原因及解决办法

Web开发
出现“不能执行已释放的Script代码”错误的原因及解决办法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

失眠的原因及解决办法

生活常识 养生 健康
失眠的原因及解决办法

移动电源不能充电 不能充电的原因及解决办法

移动电源 生活用品 移动电源不能充电的解决办法
移动电源不能充电 不能充电的原因及解决办法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

孩子哭闹的原因及解决办法

育儿 育儿知识 妈妈 儿歌 取名 婴儿 喂养 孕期 营养 怀孕 分娩 孕妇 教育 胎教 亲子游戏 奶粉 幼儿 宝宝 早教
孩子哭闹的原因及解决办法

网速慢的原因及解决办法

电脑网络
网速慢的原因及解决办法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

js中的escape及unescape函数的php实现代码

js中的escape及unescape函数的php实现代码

Android多线程及异步处理问题详细探讨

Android多线程及异步处理问题详细探讨
下拉加载更多内容 ↓