js定时

JavaScript定时机制setTimeout与setInterval研究

余生长醉 提交于 2019-12-01 18:00:23
容易欺骗别人感情的JavaScript定时器 本文转自: 爱微网 JavaScript的setTimeout与setInterval是两个很容易欺骗别人感情的方法,因为我们开始常常以为调用了就会按既定的方式执行, 我想不少人都深有同感, 例如 setTimeout ( function () { alert ( '你好!' ); } , 0 ); setInterval ( callbackFunction , 100 ); 认为setTimeout中的问候方法会立即被执行,因为这并不是凭空而说,而是JavaScript API文档明确定义第二个参数意义为隔多少毫秒后,回调方法就会被执行. 这里设成0毫秒,理所当然就立即被执行了. 同理对setInterval的callbackFunction方法每间隔100毫秒就立即被执行深信不疑! 但随着JavaScript应用开发经验不断的增加和丰富,有一天你发现了一段怪异的代码而百思不得其解: div . onclick = function () { setTimeout ( function () { document . getElementById ( 'inputField' ). focus (); } , 0 ); } ; 既然是0毫秒后执行,那么还用setTimeout干什么, 此刻, 坚定的信念已开始动摇. 直到最后某一天