有没有更简单的方法来做setTimeout ....?

时间:2011-12-07 12:28:07

标签: jquery jquery-ui settimeout

我正在使用以下代码等待java脚本执行3秒钟。

var test = setTimeout(function(){
   alert("Test");
},3000);

我的问题是,如果有更简单的方法来做同样的事情如下...... 我遇到过一些使用$ .idle

的博客
$.idle(3000);
alert("Test");

提前致谢

3 个答案:

答案 0 :(得分:2)

你是在追求延迟吗?

http://api.jquery.com/delay/

答案 1 :(得分:1)

调用setTimeout()的速度最快,因为这是本机JS。

答案 2 :(得分:1)

我希望我能记住我拉这个的网站,这样我就可以给予作者充分的信任,但你可能正在寻找的是在jQuery中使用Deferreds。

这是一个利用Deferreds的函数,这样你就有了一个干净,实用的调用机制,与你所展示的非常相似(正如Andy E所提到的那样,它不会阻止它。)

$.wait = function(time) {
    return $.Deferred(function( dfd ) {
        // resolve() calls all of the registered
        // 'done' callbacks (registered using then())
        setTimeout(dfd.resolve, time);
    }).promise();
};

现在,感谢Deferreds,你可以在你的app中编写超时:

$.wait(5000).then(function() {
  alert("Hello from the future!");
});