jjzjj

setTimeouts

全部标签

javascript - 为什么在有 setTimeout 和 setInterval 的情况下,javascript 中没有 sleep 功能?

为什么javascript中没有这样的函数为其继续设置超时、保存必要的状态(作用域对象和执行点)、终止脚本并将控制权交还给浏览器?在超时到期后,浏览器将加载回执行上下文并继续执行脚本,我们将拥有一个真正的非浏览器阻塞sleep功能,即使JS引擎是单线程的也可以工作。为什么在javascript中仍然没有这样的功能?为什么我们仍然必须将我们的代码切片为函数并将超时设置到下一步以实现sleep效果? 最佳答案 我认为您不希望浏览器中出现“sleep”。首先,您可能不清楚在您实际休眠时会发生什么以及浏览器应该如何表现。完整的脚本运行时是否

javascript - 多个 setTimeout 上的 clearTimeout

我有多个这样的setTimeout函数:functionbigtomedium(visiblespan){visiblespan.removeClass('big').addClass('medium');setTimeout(function(){mediumtosmall(visiblespan);},150);};functionmediumtosmall(visiblespan){visiblespan.removeClass('medium').addClass('small');setTimeout(function(){smalltomedium(visiblespan)

JavaScript setTimeout() 在重负载下变慢

我创建了一个使元素背景颜色变淡的脚本。我使用setTimeout()每5毫秒对颜色进行一次增量更改。如果我一次只淡化一个事物的背景颜色,脚本会很好用,但是如果我有,比如说,50个元素,我一次全部淡化,速度比5毫秒慢得多,因为所有同时运行的并发setTimeout()。例如,通常应该在1秒内执行的淡化,如果我一次淡化50个元素,则可能需要30秒。有什么办法可以克服这个问题吗?如果有人有想法,这里是脚本:functionfadeBackground(elementId,start,end,time){variterations=Math.round(time/5);varstep=newA

javascript - 自调用函数中递归函数的 setTimeout()

我想将我的代码作为一个self调用的匿名函数来分发,正如我看到的那样。此外,在我的代码中,我必须监视另一个库加载,以便我可以在它可用时使用它。(function(window,document,undefined){staffHappens();varinitMyLib=function(){if(typeof(myLib)=='undefined'){setTimeout("initMyLib()",50);}else{useMyLib();}}moreStaffHappens();initMyLib();//->initMyLibisundefined})(this,documen

javascript - 在 setTimeout 中调用超过 1 个函数

我想在JavaScript中的一个setTimeout()末尾调用两个函数。是否可能,如果"is"将首先执行哪个?setTimeout(function(){playmp3(nextpage);$.mobile.changePage($('#'+nextpage));},playTime); 最佳答案 Isitpossible?是的,为什么不呢?setTimeout将回调函数作为第一个参数。它是一个回调函数这一事实并没有改变任何东西;通常的规则适用。whichonewillbeexecutedfirst?除非您使用的是基于Promi

javascript - 使用 setTimeout 在自身内部调用函数

我想像这样在自身内部调用一个函数:$(document).ready(functionready(){vartester=$.ajax({async:false,url:"test_parse.php"}).responseText;document.getElementById('test').innerHTML=tester;setTimeout(ready(),3000);});但每次我这样做时,我的浏览器都会继续加载,最终Apache会关闭(显然不是我预期的结果)。你能帮我想出一个解决办法吗? 最佳答案 setTimeout

javascript - 如何将变量传递给 setTimeout 函数?

我正在尝试设置五个交错的函数调用(相隔一秒)。那部分工作正常。不起作用的是,我无法将值0到4传递给回调函数。它每次都只是通过'5'。我似乎无法弄清楚为什么以及如何解决它。代码:​functioncallback(num){console.log(num);}for(vari=0,loadDelay=1000;i结果:55555期望的结果:01234 最佳答案 那是因为你创建了一个闭包。因此,您传递给setTimeout的函数共享相同的i实例。在支持标准(非IE)的浏览器中,您可以:setTimeout(callback,loadDe

javascript - Angular : update $scope doesn't work in setTimeout callback

在angular.js中,$scope.greeting=xxx在window.setTimeout中不起作用。它没有任何效果:varmyApp=angular.module('myApp',[]);myApp.controller('MyCtrl',function($scope){$scope.greeting='init';window.setTimeout(function(){console.log('updategreeting');$scope.greeting="hello";//doesn'tworkhere.},3000);})为什么?完整对比如下:有效(在ajax

javascript - 将参数传递到 setTimeout 的闭包中

我遇到了一个问题,我的应用程序位于iframe中,并且它是从外部域调用的。当iframe正确加载时,IE9不会触发加载事件,所以我认为我无法使用setTimeout来轮询页面。无论如何,我想看看我的setTimeout完成通常需要多长时间,所以我希望能够记录setTimeout从我的回调中触发的延迟,但我不确定如何将该上下文传递给它所以我可以记录它。App.readyIE9=function(){vartimings=[1,250,500,750,1000,1500,2000,3000];for(vari=0;i我在IE9的控制台中不断收到LOG:undefined。完成此任务的正确方

JavaScript setTimeout 无法访问函数变量

这个问题在这里已经有了答案:setTimeoutinfor-loopdoesnotprintconsecutivevalues[duplicate](10个答案)JavaScriptclosureinsideloops–simplepracticalexample(44个答案)关闭9年前。至少我认为在这种情况下会发生这种情况:functionMyFunc(){varpeople=Array({name:'Alex',age:25},{name:'Ellen',age:43});for(vari=0;i我得到这个错误UncaughtTypeError:Cannotreadproperty