setTimeout延时0毫秒的作用和问题

一 作用

http://www.cnblogs.com/xieex/archive/2008/07/11/1241151.html

经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?

延时0秒能将函数执行脱离出当前环境:

当一个事件发生时,其相关的操作还没完成。

所以:

1 keypress事件中并不能获得 此处输入的字符,只能获得之前的

2 radio 的 click事件中,并不能获得此处点击是否选中该radio,而是获得点击之前的状态。

解决:而使用 setTimeout ,即使0秒,也能脱离当前事件,可以获得当前事件结束后的状态

$(‘radio‘).on(‘tap‘,function(){
    //此处只能获得点击,radio的状态
});
$(‘radio‘).on(‘tap‘,function(){
    setTimeout(funnction(){
        // 能获得点击的状态
    },0);
});

二 问题

http://www.cnblogs.com/fullhouse/archive/2012/10/10/2718542.html

不可能是 真的0秒,而是16ms左右,chrome,ie10等浏览器,setTimeout的间隔缩短到了 4ms。

时间: 2024-10-12 13:37:30

setTimeout延时0毫秒的作用和问题的相关文章

js中 setTimeout延时0毫秒的作用

经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用,可能还有作用我还不知道,希望得知的朋友在后面评论上不吝指出.1.实现javascript的异步:正常情况下javascript都是按照顺序执行的.但是我们可能让该语句后面的语句执行完再执行本身,这时就可以用到setTimeout延时0ms来实现了.如: alert(1); setTimeout("alert(2)", 0); ale

setTimeout的作用以及setTimeout延时0毫秒的作用

以下代码输出的顺序是? console.log(1); setTimeout(function(){ console.log(2); }, 0); setTimeout(function(){ console.log(3); }, 1000);console.log(4); 答案是: 1 4 2 3 经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用,可能还有作用我还不知道,希望得知的朋友在后

setTimeout延时0毫秒的作用

经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用 1.实现javascript的异步:正常情况下javascript都是按照顺序执行的.但是我们可能让该语句后面的语句执行完再执行本身,这时就可以用到setTimeout延时0ms来实现了.如: alert(1); setTimeout("alert(2)", 0); alert(3); 虽然延时了0ms,但是执行顺序为:1,3,2 

setTimeout(call,0)作用

经常看到setTimeout延时0ms的javascript代码,感到很迷惑,难道延时0ms和不延时不是一个道理吗?后来通过查资料以及实验得出以下两个作用,可能还有作用我还不知道,希望得知的朋友在后面评论上不吝指出. 1.实现javascript的异步:正常情况下javascript都是按照顺序执行的.但是我们可能让该语句后面的语句执行完再执行本身,这时就可以用到setTimeout延时0ms来实现了.如: alert(1); setTimeout("alert(2)", 0); al

JavaScript下的setTimeout(fn,0)的作用,涨知识了

在工作学习中,我看到团队中的有些大神的代码中不时的出现setTimeout(fn,0):这样的写法,很好奇,这样写的作用是什么,在网上,经过一位网友无私耐心地阐述,我才对js单线程的机制有了更深的认识,此处我引上链接,与君共勉! http://www.cnblogs.com/silin6/p/4333999.html

Javascript定时器(三)——setTimeout(func, 0)

setTimeout(func, 0)可以使用在很多地方,拆分循环.模拟事件捕获.页面渲染等 一.setTimeout中的delay参数为0,并不是指马上执行 <script type="text/javascript"> function delay1() { console.log('delay1'); } function delay2() { console.log('delay2'); } function delay3() { console.log('dela

get(0).tagName获得作用标签

<script type="text/javascript" src="jquery1.4.js"></script><script type="text/javascript">$(function(){    $(".test li,.test dd").click(function(){        alert('本身为大写:' + $(this).get(0).tagName +

sql where 1=1和 0=1 的作用

sql where 1=1和 0=1 的作用 摘自: http://www.cnblogs.com/junyuz/archive/2011/03/10/1979646.html where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句. 一.不用where  1=1  在多条件查询中的困扰 举个例子,如果您做查询页面,并且,可查询的选项有多个,同时,还让用户自行选择并输入查询关键词,那么,按平时的查询语句的动态构造,代码大体如下: string MySq

setTimeout(fn, 0)引发的JavaScipt线程的思考

起因 周五改一个checkbox的display属性被错误地设置为none的bug. 经debug发现, 有两个地方修改了display属性: 1) checkbox的controller; 2) checkbox的parent(container). 前者先将display属性更新为block(正确), 后者再次更新为none(错误). 普通的思路是, 修改checkbox的container的代码, 使其能正确更新display值. 但另有一种更巧妙的方法, 就是修改checkbox的con