我该如何停下来开始setInterval?
假设我有一个textarea.我想停止setInterval焦点并重新启动setInterval模糊(使用jQuery).
我怎么能每分钟运行一个功能?在JavaScript中我可以做类似的事情setInterval,在Swift中存在类似的东西吗?
通缉输出:
你好世界每分钟一次......
我正在编写一个利用JavaScript超时和间隔来更新页面的应用程序.有没有办法看到设置了多少间隔?我想通过设置数百个间隔来确保我不会意外地杀死浏览器.
这甚至是个问题吗?
所以我正在制作一个音乐程序,需要多个javascript元素与另一个同步.我一直在使用setInterval,它最初工作得非常好但是随着时间的推移,元素逐渐变得不同步,而音乐程序则很糟糕.
我在网上看到setTimeout更准确,你可以用某种方式设置setTimeout循环但是我还没有找到一个通用版本来说明这是如何实现的.有人可以向我展示一个使用setTimeout无限循环的基本示例.
谢谢.或者,如果有办法通过setInterval或其他功能实现更多同步结果,请告诉我.
编辑:
基本上我有一些像这样的功能:
//drums
setInterval(function {
//code for the drums playing goes here
},8000);
//chords
setInterval(function {
//code for the chords playing goes here
},1000);
//bass
setInterval(function {
//code for the bass playing goes here
},500);
Run Code Online (Sandbox Code Playgroud)
它最初工作得非常好,但是在大约一分钟的过程中,声音明显不同步,因为我已经阅读了setInterval,我读过setTimeout可以更加一致地准确.
如何将setInterval计时器重置为0?
var myTimer = setInterval(function() {
console.log('idle');
}, 4000);
Run Code Online (Sandbox Code Playgroud)
我尝试了clearInterval(myTimer)但完全停止了间隔.我希望它从0重新启动.
我有这个柜台,但是我希望它能永远运行,这很简单,我在这里做错了什么?
function timer() {
console.log("timer!")
}
window.setInterval(timer(), 1000)
Run Code Online (Sandbox Code Playgroud) 目前正在开发基于JavaScript的动画项目.
我注意到,正确使用setInterval(),setTimeout()甚至在requestAnimationFrame没有我的请求的情况下分配内存,并导致频繁的垃圾收集调用.更多GC调用=闪烁:-(
例如; 当我通过在谷歌浏览器中调用init()执行以下简单代码时,内存分配+垃圾收集在前20-30秒内没问题......
function init()
{
var ref = window.setInterval(function() { draw(); }, 50);
}
function draw()
{
return true
}
Run Code Online (Sandbox Code Playgroud)
不知何故,在一分钟左右的时间内,开始分配内存的奇怪增加!由于init()仅被调用一次,所以分配的内存大小增加的原因是什么?
(编辑:chrome截图上传)

注意#1:是的,我尝试在下一个setInterval()之前调用clearInterval().问题依然存在!
注意#2:为了隔离问题,我保持上面的代码简单而愚蠢.
我需要this从我的setInterval处理程序访问
prefs: null,
startup : function()
{
// init prefs
...
this.retrieve_rate();
this.intervalID = setInterval(this.retrieve_rate, this.INTERVAL);
},
retrieve_rate : function()
{
var ajax = null;
ajax = new XMLHttpRequest();
ajax.open('GET', 'http://xyz.com', true);
ajax.onload = function()
{
// access prefs here
}
}
Run Code Online (Sandbox Code Playgroud)
我如何访问this.prefs ajax.onload?
我正在尝试创建一个网页,当它开始加载时,使用Interval来启动计时器.
页面完全加载后,它会停止计时器,
但99%的时间我得到0.00或0.01的时间测量,即使它需要更长时间.
偶尔,它会说某些更有意义的东西,比如.28或3.10.
这是代码,如果它有帮助:
var hundredthstimer = 0;
var secondplace = 0;
function addinc(){
hundredthstimer += 1;
if (inctimer == 100){
hundredthstimer = 0;
secondplace += 1;
}
}
var clockint = setInterval(addinc, 10);
function init(){
var bconv1 = document.getElementById("bconverter1");
var bconv2 = document.getElementById("bconverter2");
$(bconv2).hide();
clearInterval(clockint);
if (inctimer.len !== 2){
inctimer = "0" + inctimer;
}
alert(secondplace + "." + inctimer);
}
onload = init;
Run Code Online (Sandbox Code Playgroud)
所以它基本上创建了一个名为百分时的变量,每10毫秒(.01秒)增加1.
然后,如果此数字达到1000(1整秒),则名为secondsplace的变量将增加1,因为这是它运行了多少个完整秒数.
然后,它会提醒秒位置,小数点和百分位数作为总加载时间.
但上述数字不正确的问题仍然存在.为什么?
我在某处读到了setInterval是CPU密集型的.我创建了一个使用setInterval的脚本并监视CPU使用情况但没有注意到更改.我想知道是否有遗漏的东西.
代码所做的是每隔100毫秒检查URL中的哈希值(#之后的内容)的变化,如果它已经改变,则使用AJAX加载页面.如果它没有改变,没有任何反应.是否会有任何CPU问题.
setinterval ×10
javascript ×9
ajax ×1
callback ×1
cpu ×1
intervals ×1
ios ×1
jquery ×1
load ×1
memory-leaks ×1
repeat ×1
reset ×1
settimeout ×1
swift ×1
this ×1
timeout ×1
timing ×1