为了账号安全,请及时绑定邮箱和手机立即绑定

angularjs的scope会一直缓存在jqcache里

angularjs的scope会一直缓存在jqcache里

交互式爱情 2018-10-09 13:53:01
我们在用angularjs做一个单页应用,其中有几个子页面会一直保持循环播放(即用ngview轮流切换几个scope)。但后来我发现页面每切换一次内存都会增长,大概几个小时之后浏览器就崩溃了。经过内存分析,可以确认有很多scope会缓存在jqcache里,然后我去找源代码,发现是以下这段导致的问题:compile.$$addScopeInfo = debugInfoEnabled ? function $$addScopeInfo($element, scope, isolated, noTemplate) {       var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope';       $element.data(dataName, scope);} : noop;我翻遍其他源代码,也没发现可以清除这部分缓存的代码。请问有什么办法可以解决这个问题?PS: angularjs的版本为1.5.8,jquery版本为1.7
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

这是个好问题,并且都研究到这个份上了,赞一个!

这看起来是jq的锅啊,.data方法的缓存。

解决方法不知道题主找到没,我的解决思路是:
在ctrl或者directive等销毁的时候$destory是手动调用相关jq的removeData方法,移除掉$ele上的data缓存。


查看完整回答
反对 回复 2018-11-04
  • 1 回答
  • 0 关注
  • 407 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信