我仍然是Javascript的新手。我尝试编写一个程序来一直使图像fadeToggle,所以我使用while条件语句(结合常量变量);在运行并冻结我的计算机之后(然后记住病毒基本上是无限的操作)我在这里搜索了一下,意识到我应该可能确实从不使用无限循环。
(实际上我想要微光 - 意味着从不透明度0.9到0.6到0.9等......)所以它与fadeToggle不一样,但同样的问题仍然存在;如何让它无限进行?(无需编写恶意代码。)
这是我写的,供您参考:
<script>
$(document).ready(function(){
var always10 = 10;
while (always10 == 10) {
$('.pimg').fadeToggle(2600);
}
});
</script>
另外,我发现另一个线程while(true)
更适合无限循环。所以另一个问题是:无限循环有时好吗?
答案 0 :(得分:0)
只需使用jQuery动画提供的回调,例如.fadeToggle:
function fadeToggleForever ($e) {
$e.fadeToggle({
duration: 2600,
// start another fadeToggle when this one completes
complete: function () { fadeToggleForever($e) }
});
}
// main code
fadeToggleForever($('.pimg'));
使用完整回调的工作原理是因为jQuery动画在内部使用setTimeout
(或者可能是setInterval
)并因此“产生”代码执行,以便浏览器可以继续响应用户输入并更新显示
答案 1 :(得分:0)
由于Javascript是异步的,因此没有sleep
方法。但相反,一个好主意是使用setInterval
或setTimeout
。
如果没有这些功能,你的循环将尽可能地占用大部分资源,并且可能导致冻结(取决于你的浏览器)。