Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不冻结的情况下创建永久动画?_Javascript_Animation_While Loop_Conditional_Infinite Loop - Fatal编程技术网

Javascript 如何在不冻结的情况下创建永久动画?

Javascript 如何在不冻结的情况下创建永久动画?,javascript,animation,while-loop,conditional,infinite-loop,Javascript,Animation,While Loop,Conditional,Infinite Loop,我还是Javascript的新手。我尝试编写一个程序,使图像始终处于淡入淡出状态,因此我使用while条件语句(结合常量变量);在运行它并冻结我的计算机(然后记住病毒基本上是无限操作)之后,我在这里搜索了一下,意识到我应该,实际上,永远不要使用无限循环 (事实上,我想要微光——意思是从不透明度0.9到0.6到0.9等等)所以它和fadeToggle不一样,但同样的问题仍然存在;如何使其无限运行?(不编写恶意代码) 这是我写的,供大家参考: <script> $(document).r

我还是Javascript的新手。我尝试编写一个程序,使图像始终处于淡入淡出状态,因此我使用while条件语句(结合常量变量);在运行它并冻结我的计算机(然后记住病毒基本上是无限操作)之后,我在这里搜索了一下,意识到我应该,实际上,永远不要使用无限循环

(事实上,我想要微光——意思是从不透明度0.9到0.6到0.9等等)所以它和fadeToggle不一样,但同样的问题仍然存在;如何使其无限运行?(不编写恶意代码)

这是我写的,供大家参考:

<script>
$(document).ready(function(){
var always10 = 10;
while (always10 == 10) {
    $('.pimg').fadeToggle(2600);
                   }
});
</script>

$(文档).ready(函数(){
var始终为10;
而(始终10==10){
美元(“.pimg”).fadeToggle(2600);
}
});

另外,我在另一个线程中发现,
while(true)
更适合无限循环。所以另一个问题是:无限循环有时可以吗?

只需使用jQuery动画已经提供的回调,如:


使用完整回调的好处是,jQuery动画在内部使用
setTimeout
(或者
setInterval
),从而“产生”代码执行,以便浏览器可以继续对用户输入做出反应并更新显示。

由于Javascript是异步的,因此没有
睡眠方法。但是,一个好主意是使用或


如果没有这些功能,您的循环将尽可能多地占用资源,并可能导致冻结(取决于您的浏览器)。

在Javascript中,有限循环几乎永远都不正常。它是单线程的,因此您永远无法与文档交互。使用
setInterval()
在后台定期运行函数。Asynchornous and sleep mode=在我脑海中闪现(我不会说其他编程语言,所以:-P),但是setInterval和setTimeout解决了我的问题。就像另一张海报一样,我想写我自己的,所以我没有使用jquery。谢谢大家!
function fadeToggleForever ($e) {
    $e.fadeToggle({
        duration: 2600,
        // start another fadeToggle when this one completes
        complete: function () { fadeToggleForever($e) }
    });
}

// main code
fadeToggleForever($('.pimg'));