如果条件正确,我需要退出运行间隔:
var refreshId = setInterval(function() {
var properID = CheckReload();
if (properID > 0) {
<--- exit from the loop--->
}
}, 10000);
Run Code Online (Sandbox Code Playgroud) myInterval = setInterval(function(){
MyFunction();
},50);
function MyFunction()
{
//Can I call clearInterval(myInterval); in here?
}
Run Code Online (Sandbox Code Playgroud)
间隔没有停止(没有被清除),如果我上面编码的是好的那么它将帮助我在别处查找造成问题的原因.谢谢.
编辑:假设它在调用clearInterval之前完成了几个间隔,这消除了对setTimeout的需要.
我正在使用Javascript命令:setInterval.我喜欢在用户离开页面时停止它.
这段代码似乎运行良好:http: //jsfiddle.net/PQz5k/
它可以检测用户何时离开页面.当用户单击链接以转到其他HTML页面或URL,或者用户重新加载页面时,它会执行Javascript代码.
但是,当我从一个AngularJS模板转到另一个模板时,它不起作用.举个例子,如果我在template1.html,当用户离开template1.html转到template2.html时,我希望Javascript代码在Controller1.js中执行某些操作.AngularJS中下面这段代码的等价物是什么?:
$(window).on('beforeunload', function() {
return 'Your own message goes here...';
});?
Run Code Online (Sandbox Code Playgroud) 简单来说 setInterval
setInterval(function() {
// Do something every 9 seconds
}, 9000);
Run Code Online (Sandbox Code Playgroud)
第一个动作将在9秒后发生(t=9s).如何强制循环立即执行第一个动作(t=0)?
我认为这是由于setInterval有Delay - Action - Delay - Action ...循环的机制; 而不是Action - Delay - Action - Delay ...循环.
编辑:我的功能确实是一个循环
setInterval(function(){
$('.test').each(function(idx){
var duration = 1000;
$(this).delay(duration*idx);
Some stuff here
});
}, 4000);
Run Code Online (Sandbox Code Playgroud) 如何使用Javascript暂停和恢复setInterval()函数?
例如,也许我有一个秒表来告诉你你在网页上看到的秒数.有一个"暂停"和"恢复"按钮.clearInterval()在这里不起作用的原因是因为如果用户在第40秒和第800毫秒点击"暂停"按钮,当他点击"恢复"按钮时,经过的秒数必须增加1 200毫秒.如果我在timer变量上使用clearInterval()函数(单击暂停按钮时),然后再次对timer变量使用setInterval()函数(单击恢复按钮时),经过的秒数将增加1仅在1000毫秒后,这会破坏秒表的准确性.
那我该怎么做?
我有一个php页面,它回显了数据库中的行.我想每隔30秒通过jquery/ajax调用它.但我也希望能够随时调用页面,这样如果我通过表单添加记录,一旦表单提交,我希望页面通过调用ajax立即更新结果.有人能指出我正确的方向或提供一些基本代码,所以我可以尝试解决这个问题吗?jquery/ajax仍然很新.
两个问题:
如何计算返回的值setInterval和setTimeout(用于清除计时器的值)?
这两个函数是否可以在运行时返回相同的值?例如:
var a = setInterval(fn1, 1000);
var b = setTimeout(fn2, 1000);
是否有可能a与b具有相同的价值?
第一个问题更多是关于我的知识问题,但第二个更重要.
我需要创建一个简单但准确的计时器.
这是我的代码:
var seconds = 0;
setInterval(function() {
timer.innerHTML = seconds++;
}, 1000);
Run Code Online (Sandbox Code Playgroud)
在3600秒之后,它打印约3500秒.
为什么不准确?
如何创建准确的计时器?
这真是一个非常简单的问题.如果我使用setInterval(something, 1000),我可以完全确定31天之后它会触发"某些东西" 60*60*24*31吗?或者是否存在所谓漂移的风险?
我有一个在jQuery插件中调用的setInterval(),但我想从我的主页面清除它,在那里我无法访问存储setInterval的变量.
有没有办法清除页面上的所有计时器?