标签: settimeout

JavaScript getTimeout?

Javascript中的window.setTimeout(和相关的setInterval)函数允许您安排将来某个时间执行的函数:

id = setTimeout(function, delay);
Run Code Online (Sandbox Code Playgroud)

其中"延迟"是您希望调用该函数的未来毫秒数.在此时间过去之前,您可以使用以下命令取消计时器:

clearTimeout(id);
Run Code Online (Sandbox Code Playgroud)

我想要的更新计时器.我希望能够提前或推迟一个定时器,使得该函数被调用x毫秒比原计划.

如果有一个getTimeout方法,你可以这样做:

originally_scheduled_time = getTimeout(id);
updateTimeout(id, originally_schedule_time + new_delay);  // change the time
Run Code Online (Sandbox Code Playgroud)

但据我所知,没有像getTimeout或任何更新现有计时器的方法.

有没有办法访问计划的警报列表并进行修改?

有更好的方法吗?

谢谢!

javascript settimeout

17
推荐指数
1
解决办法
7686
查看次数

浏览器是否跟踪活动计时器ID?

浏览器是否跟踪活动setIntervalsetTimeoutID?或者这完全由开发人员来跟踪?

如果它确实跟踪它们,是否可以通过BOM访问?

javascript settimeout setinterval

17
推荐指数
1
解决办法
5248
查看次数

js:了解alert()如何影响浏览器事件循环

我正在考虑向我们的javascript实用程序断言函数添加alert().

我们是一个ajax繁重的应用程序,我们的框架(Ext)通过使用setInterval轮询ajax响应而不是等待readystate == 4来实现ajax的方式,导致我们所有的ajax回调在setInterval堆栈上下文中执行 - - 一个异常/断言吹出它通常会无声地失败.

低级别alert()如何影响浏览器事件循环?根据定义,消息框必须允许win32事件循环泵(响应mbox按钮).这是否意味着其他浏览器事件,就像我们的框架生成的未来setIntervals,调整大小事件等,要火?这会给我带来麻烦吗?

IIRC:您可以使用FF2和FF3.5来查看我正在谈论的差异.

alert('1');
setTimeout(function(){alert('2');}, 10);
alert('3');
Run Code Online (Sandbox Code Playgroud)

FF 3.5显示1-3-2.FF2 [1]显示1-2和3(2和3同时堆叠在一起).我们可以使用从activex启动的win32 mbox在IE8中复制1-2和3,而不是在当天对我们造成严重破坏的警报,我想确保我们不再沿着那条路走下去.

任何人都可以向我指出解释这种行为的特定低级资源,这里的预期行为是什么,以及在低级别上究竟发生了什么,包括为什么行为在FF版本中发生了变化?

[1]你可以在Spoon.net上复制这个,我现在无法正常工作.我只是用FF 2.0.0.20在vm中重新编写它.

javascript winapi javascript-events settimeout

17
推荐指数
2
解决办法
2344
查看次数

将函数传递给循环中的setTimeout:总是最后一个值?

我正在尝试使用setTimeout来执行我传递信息的匿名函数,我遇到了麻烦.这个(硬编码版本)可以正常工作:

setTimeout(function(){alert("hello");},1000);
setTimeout(function(){alert("world");},2000);
Run Code Online (Sandbox Code Playgroud)

但是我试图从数组中取出hello和world并将它们传递给函数,而不是(a)使用全局变量,以及(2)使用eval.我知道如何使用全局或eval来做到这一点,但是如何在没有它的情况下做到这一点.这是我想做的(但我知道它不会起作用):

var strings = [ "hello", "world" ];
var delay = 1000;
for(var i=0;i<strings.length;i++) {
    setTimeout( function(){alert(strings[i]);}, delay);
    delay += 1000;
}
Run Code Online (Sandbox Code Playgroud)

当然,字符串[i]将脱离上下文.如何在没有eval或globals的情况下将字符串[i]传递给该匿名函数?

javascript settimeout

17
推荐指数
3
解决办法
1万
查看次数

为什么Progress Bar不会像Text一样动态变化?

我正在动态更新setTimeout()函数后的一些元素.jQuery函数.text()似乎在处理时随着数组索引的每次更改而动态更新.但是一个正在改变的引导进度条似乎.css().attr()没有动态更新.这是我的页面:http://imdbnator.com/process.php?id = f144caf0843490c0d3674113b03da0c5&redirect = false

您可以看到文本已更改但进度条仅在整个setTimeout()函数完成后结束.另外,如果我设置了delay = 1000.有用.但它因应用而变慢.因此,我需要delay = 0.但为什么进度条不会改变?

这是我的片段

function launch(a) {
    var inc = 0;
    var maxc = a.length;
    var delay = 0; // delay milliseconds
    var iID = setInterval(function () {    
        var index = inc;
        var movie = a[inc];    
        //start processing function    
        //styling while processing                
        var markerPer = ((index + 1) / rawListNum) * 100; // marker percentage
        $("#procNum").text("(" …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery settimeout twitter-bootstrap

17
推荐指数
1
解决办法
3948
查看次数

JavaScript - 什么时候调用堆栈变得"空"?

我在事件循环中读过几个帖子/ SO线程,根据MDN的文章,

当堆栈为空时,将从队列中取出一条消息并进行处理.

作为一个JS新手,我仍然感到困惑的是 - 什么时候调用堆栈变得"空"?例如,

<script>
function f() {
  console.log("foo");
  setTimeout(g, 0);
  console.log("foo again");
}
function g() {
  console.log("bar");
}
function b() {
  console.log("bye");
}

f();
/*<---- Is the stack empty here? */
b();
</script>
Run Code Online (Sandbox Code Playgroud)

正确的执行顺序是foo- foo again- bye- bar.

但是今天我开始思考:退出f()电话后,技术上的堆栈是不是很空?我的意思是在那一点上我们不在任何函数内部,并且我们还没有开始任何新的执行,所以不应该处理setTimeout调用消息(已经立即排队),然后继续执行b(),并给出顺序foo- foo again- bar- bye

如果我们有一百万行代码或一些密集计算要执行并且setTimeout(func, 0)只是在队列中停留多长时间怎么办?

javascript concurrency asynchronous event-loop settimeout

17
推荐指数
1
解决办法
1756
查看次数

setTimeout里面的for循环

我想要一个字符串出现字符转换为以下代码:

function initText()
{
    var textScroller = document.getElementById('textScroller');
    var text = 'Hello how are you?';

    for(c = 0; c < text.length; c++)
    {
        setTimeout('textScroller.innerHTML += text[c]', 1000);
    }
}

window.onload = initText;
Run Code Online (Sandbox Code Playgroud)

它不起作用..我做错了什么?

javascript loops settimeout

16
推荐指数
1
解决办法
3万
查看次数

为什么Underscore.js有延迟功能?

这是Underscore.js delay函数的源代码:

_.delay = function (func, wait) {
    var args = slice.call(arguments, 2);
    return setTimeout(function () { return func.apply(null, args); }, wait);
};
Run Code Online (Sandbox Code Playgroud)

这有什么不同setTimeout?为什么Underscore.js需要delay

javascript settimeout underscore.js

16
推荐指数
3
解决办法
1万
查看次数

在reactjs中停止超时?

有没有办法可以在reactjs中杀死/(摆脱)超时?

setTimeout(function() {
//do something
}.bind(this), 3000);
Run Code Online (Sandbox Code Playgroud)

在某种点击或动作时,我希望能够完全停止并结束超时.有没有办法做到这一点?谢谢.

settimeout reactjs

16
推荐指数
3
解决办法
2万
查看次数

在setTimeout中使用async有效吗?

我在Javascript中有一个异步函数,我添加了setTimeout.代码看起来像这样:

        let timer;
        clearTimeout(timer);
        timer =setTimeout(() => {
        (async() => {
            await this._doSomething();
        })();
        }, 2000);
Run Code Online (Sandbox Code Playgroud)

setTimeout的puprose是在运行函数之前加2秒.确保用户停止输入.

我现在应该从此函数中删除async/await,因为setTimeout是异步的吗?

任何帮助在这里非常感谢!

javascript asynchronous settimeout ecmascript-2017

16
推荐指数
1
解决办法
1万
查看次数