Javascript 循环动画会使浏览器崩溃吗?
我有一些PNG在屏幕上反复移动,我相信这可能会使一些浏览器崩溃 例如:Javascript 循环动画会使浏览器崩溃吗?,javascript,jquery,animation,Javascript,Jquery,Animation,我有一些PNG在屏幕上反复移动,我相信这可能会使一些浏览器崩溃 例如: function parachute_drop(drop_object, animation_duration) { $(drop_object) .animate({top: "750px"},animation_duration) .animate({top:"-150px", opacity: 100 },{ duration: 0,
function parachute_drop(drop_object, animation_duration) {
$(drop_object)
.animate({top: "750px"},animation_duration)
.animate({top:"-150px", opacity: 100
},{
duration: 0,
complete: function(){
parachute_drop(drop_object,animation_duration);
}
});
}
parachute_drop('#object_id',10000);
每次动画完成时,它都会再次启动该函数,直至无限大
我没有预见到这将是一个问题,但我听说这不是很好,嗯,我的网站现在崩溃后,一段时间似乎
有没有一种方法可以以更稳定的方式进行这样的无休止的循环?似乎有点奇怪,简单地将一个9kb的png文件从屏幕的顶部一次又一次地移动到底部会对系统资源造成压力。问题是什么?我该如何更好地处理这个问题?您的代码是一个递归算法,在填充浏览器javascript机器的代码堆栈时可能会崩溃。您可以使用基于计时器的不同方法来实现连续循环
你可以从这个例子开始:查看
setTimeout
或setInterval
。@Switz:jQUery正在为他使用它。与其通过循环显示动画,不如查看一些javascript游戏库,如jawsjs、impact、,gamequery等。更多信息可以在这里找到:一个修复方法是使用持续时间非常低的setTimeout,甚至在调用函数之前使用1again@charlietfl:没有意义;jQuery已经在这么做了。我明白了-谢谢你。我在学习那个教程,但有人建议我自己做函数,只在函数内部调用它。这似乎也是本教程要做的,但必须使用不同的方法?事实并非如此@cosmicbdog的代码是异步的,而不是递归的。动画是基于Jquery代码的异步的,但完成的方法是一个链接参数,如果它们从未像递归方法那样完成解链方法,则可能会不稳定。我将重复的动画放入everytime()中从上面的代码的功能,仍然得到浏览器崩溃。我想我发现了问题。。。everytime()函数的间隔设置为10。然而,我的循环只有几分钟长。所以他们每10秒就堆积一次-听起来对吗?出于某种原因,我很难理解jquery程序员的行话。