jjzjj

setTimeout

全部标签

javascript - setTimeout 可以太长吗?

我正在创建一个应用程序来轮询服务器以获取特定更改。我使用使用setTimeout的自调用函数。基本上是这样的:someFunction();functionsomeFunction(){$.getScript('/some_script');setTimeout(someFunction,100000);}为了让这个轮询在服务器上不那么密集,我想有一个更长的超时间隔;也许在1分钟到2分钟范围内的某个地方。是否存在setTimeout的超时时间过长而无法正常工作的情况? 最佳答案 你在技术上没问题。如果您确实愿意,您可以设置最长24.

javascript - setTimeout() 方法中的 clearTimeout() 在 JS 中不起作用

clearTimeout()insidesetTimeout()方法在JavaScript中不起作用varc=0;vart;functiontimedCount(){document.getElementById('txt').value=c;c=c+1;if(c==5){clearTimeout(t);}t=setTimeout(function(){timedCount()},1000);}jsFiddle 最佳答案 您需要阻止执行其余代码,实际上您是在清除setTimeout后重新声明t。Fiddlevarc=0;vart;f

javascript - 重置 setTimeout 对象(如果存在)

当有人从一长串复选框中单击我的复选框时,我想在一个小弹出元素中显示所选复选框的数量。我的问题是,小弹出元素应该在点击最后5秒后消失,这对于点击一个复选框是可以的,但如果我快速选中5个复选框,计时器仍然设置在第一个框上,导致弹出元素消失得太快。正如您在我的函数中看到的那样,我已经尝试使用clearTimeout(timeoutName)函数,但在应用它时遇到了一些麻烦。控制台日志指出clearTimeout(timeoutName)未定义,我可以理解:setTimeout甚至还没有开始。如何在清除计时器之前检查它是否存在?或者这真的不是最好的方法?当一个复选框被选中(这个函数运行)时,可

javascript - 类型错误 : $timeout is not a function

这里发生了什么:我希望“取消预订”按钮在单击后超时。第一次单击时,它会更改为显示“确认取消”按钮。几秒钟后返回“取消预订”。我的控制台给我:TypeError:$timeoutisnotafunction我正在使用AngularJS$timeout:Controller:'usestrict';module.controller('ReservationItemCtrl',['$scope','$stateParams','$RPC',function($scope,$stateParams,$RPC,$timeout){......otherstuff.............oth

javascript - clearTimeout 在 javascript 自动完成脚本中不起作用

我正在使用以下代码作为自动完成脚本的一部分,以避免每次击键都对服务器造成影响:varthat=this;textInput.bind("keyup",function(){clearTimeout(that.timer);that.timer=setTimeout(that.doStuff(),2000);});不幸的是,这并没有清除旧计时器。他们仍然全部执行。有人知道我错过了什么吗?谢谢! 最佳答案 你可能想使用:that.timer=setTimeout(that.doStuff,2000);代替:that.timer=setT

javascript - 如何在到达时间设置之前覆盖 setTimeout?

所以我正在使用jquery进行自动完成搜索。我必须在执行ajax函数之前设置一个延迟,因为我不想每次在文本框上键入时都调用我的服务器。这是我的代码:functionsearchVendor(){setTimeout(searchVendor2,5000);}functionsearchVendor2(){varsearch=$('#inputVendor').val();$.ajax({type:'POST',url:'/getVendors',data:{search:search},dataType:'json',success:function(s){$('#inputVendo

javascript - 在 javascript 的协作线程意义上是否有正确的 'yield' 方法?

我正在编写一个无处不在的插件,ajax查询的长函数回调阻塞了GUI线程,导致firefox锁定。明显的解决方案似乎是使用某种延迟执行(即我们希望定期将执行此查询函数添加到事件队列的末尾,然后允许其他命令待执行。我能想到的唯一方法是使用超时为零的settimeout...这是否保证有效,或者是否有更好的方法。 最佳答案 使用setTimeout并设置一个非常小的超时时间(0或者如果您感到偏执,则非常接近于零)是在浏览器上下文中执行此操作的唯一方法。它工作得很好而且非常可靠,但一定要足够频繁地产生,但不要太,因为它确实需要一段时间才能返

javascript - 如何将参数传递给使用 setTimeout 调用的函数?

我想将参数传递给使用setTimeout调用的函数。我找到了这三个选项:A=1;//Method1:closurethingssetTimeout(function(){whatsA(A);},100);//Method2:thirdargument(sameresultwith[A])setTimeout(whatsA,100,A);//Method3:evalsetTimeout('whatsA('+A+')',100);A=2;functionwhatsA(X){console.log(X);}这显示了InternetExplorer9中的2、undefined和1。方法1:显然

javascript - setTimeOut 产生 233 fps 而 requestAnimationFrame 产生 61

我在Chrome上做了一些测试,requestAnimationFrame产生了61fps而setTimeOut(callback,0)产生了233fps。如果一个人想要超过61fps(我不确定这是为了什么)但是使用setTimeOut渲染并只使用requestAnimationFrame来检测窗口何时失去焦点然后停止超时直到焦点不是更好吗返回?还有一个附带问题:除了不调用回调的requestAnimationFrame之外,还有其他方法可以检测窗口何时失去焦点吗? 最佳答案 请求动画帧与您的显示器刷新率同步(动画帧数多于您在屏幕上

窗口加载事件中的 Javascript setTimeout 函数......不工作

一个月前我已经完成了...但是现在它不起作用...代码是window.onload=function(){setTimeout(function(){alert("Hello");},10000);};这是用脚本写在test.php页面的头部。脚本和其他标签是正确的。我想每10秒调用一个特定的函数。警报只显示一次。这是每个浏览器中的问题....在这次测试之后,我想每2秒检查一次url并调用一个AJAX函数。有什么帮助吗?? 最佳答案 这就是setTimeout确实(在指定的时间间隔后执行一次)。您正在寻找setInterval(重复