我在角度js应用中使用Scrollmagic。我的应用程序右侧有一个侧边栏,无限滚动。有些部分会坚持一段特定的时间,然后像下面那样展开
因此实际上我创建了多个场景并将其添加到scrollMagicController。我现在怀疑由于滚动保留DOM节点导致的内存泄漏,devtools的堆分析器证明了这一点。我知道有一个场景和控制器的破坏方法,需要调用它来清理,但我无法弄清楚如何破坏多个节点。以下是我试过的内容
var scrollMagicCtrl = new ScrollMagic.Controller();
//create scene dynamically whenever stickyContainerInView event fires
scope.$on('stickyContainerInView', function(event, inViewElement) {
new ScrollMagic.Scene({
triggerElement: someElement, //Selector or DOM object that defines the start of the scene
triggerHook: 'onLeave', //sets the position of trigger hook w.r.t viewport
duration: someDuration, //The duration(in pixels) for which the element will remain sticky
offset: -60 //Offset Value for the Trigger hook position
})
.setPin(someContainer)
.addTo(scrollMagicCtrl);
});
//clean up things on angular's destroy method
$scope.$on("$destroy", function() {
scrollMagicCtrl.destroy();
scrollMagicCtrl = null;
});
我想我只需要调用控制器的destroy方法,它应该自动销毁添加到它的所有场景,但不幸的是它不会那样工作。
有关如何清理事物的任何帮助?