Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一按按钮就睡一会儿_Javascript_Jquery - Fatal编程技术网

Javascript 一按按钮就睡一会儿

Javascript 一按按钮就睡一会儿,javascript,jquery,Javascript,Jquery,目前我有以下几点 $(document).ready(function () { $('#abc').click(function () { setTimeout(function () { //do stuff }, 2000); }); }); 有没有更好的办法,也许像这样 $('#abc').click(function () { // sleep/delay or whatever //do

目前我有以下几点

$(document).ready(function () {
    $('#abc').click(function () {

        setTimeout(function () {
            //do stuff
        }, 2000);

    });
});
有没有更好的办法,也许像这样

$('#abc').click(function () {
    // sleep/delay or whatever

    //do stuff
});

不,没有更好的办法了。为了同步睡眠,您需要使用一个自旋锁,它将使用浏览器的所有资源,并将CPU加电2秒(“睡眠”的持续时间)


坚持使用异步版本。

不,没有更好的方法。为了同步睡眠,您需要使用一个自旋锁,它将使用浏览器的所有资源,并将CPU加电2秒(“睡眠”的持续时间)

$('#abc').click(function () {
    $(this).delay(seconds);

    //do stuff
});
Try this
I dunno wheather it works

坚持使用异步版本。

一般来说,不是。除了计时器之外,您只限于使用不确定循环阻塞线程,这会停止所有其他代码并冻结UI。很少有人认为这是一件好事。不,在JS中没有像PHP中那样的
sleep()。JS在主线程中工作,因此阻止执行会冻结UI。请尝试在
JQuery
中使用
delay(2000)
。接受异步性-不仅在JavaScript中没有太多选择,而且在任何系统的设计中。@KitePlayer
.delay()
都可以工作,但也只有在使用时。但是,它也是。一般来说,不是。除了计时器,你被限制用一个不确定的循环阻塞线程,这会停止所有其他代码并冻结UI。很少有人认为这是一件好事。不,在JS中没有像PHP中那样的
sleep()。JS在主线程中工作,因此阻止执行会冻结UI。请尝试在
JQuery
中使用
delay(2000)
。接受异步性-不仅在JavaScript中没有太多选择,而且在任何系统的设计中。@KitePlayer
.delay()
都可以工作,但也只有在使用时。不过,这也是。嗯。。。我不认为js或JQueryHMM中有睡眠功能。。。我认为js或jquery中没有睡眠功能
$('#abc').click(function () {
    $(this).delay(seconds);

    //do stuff
});
Try this
I dunno wheather it works