File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed
Chapter8 - The Browser Object Model Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -209,7 +209,7 @@ try {
209209
210210` setTimeout ` 是单次定时器,` setInterval ` 则是循环定时器。
211211
212- 每次调用定时器函数都会返回一个定时器的 ID,类型为数值型,我们可以将这个 ID 传入到对应的 ` clearTimeout ` 与 ` clearInterval ` 方法中进行定时器的清楚 。
212+ 每次调用定时器函数都会返回一个定时器的 ID,类型为数值型,我们可以将这个 ID 传入到对应的 ` clearTimeout ` 与 ` clearInterval ` 方法中进行定时器的清除 。
213213
214214每次清除定时器后,最好也将定时器的 ID 置为 null,以方便全局环境中垃圾的回收机制进行回收处理:
215215
@@ -220,10 +220,14 @@ clearTimeout(timer);
220220timer = null ;
221221```
222222
223- 对于循环定时器的调用而言可能会出现下一次的调用会发生在前一次调用结束之前调用, 因此我们建议使用单次定时器来模拟循环定时器。
223+ 对于循环定时器的调用而言可能会出现下一次的调用会发生在前一次调用结束之前调用( ` setInterval ` 只会在指定的间隔时间中重复调用,但不会判断上次调用是否完成), 因此我们建议使用单次定时器来模拟循环定时器(在 ` setTimeout ` 内再调用 ` setTimeout ` 这样便可以保证上一次定时执行已经完成) 。
224224
225225最后由于定时器是异步代码,JS 是单线程会首先执行同步代码,然后将异步代码放在一个异步队列中排队轮询执行,所以如果当前的定时器之前还有其它的异步程序在执行,那么便无法准确的在规定的时间间隔中被调用,但总的来说执行时间大于等于间隔时间,这是可以确定的。
226226
227+ 虽然我们可以设置定时器的间隔时间为 ` 0 ` ,但通常浏览器默认的最小间隔时 ` 4ms ` 。
228+
229+ > 我们不能在 ` setTimeout ` 进行定时操作,因为它的调用时间是自身的间隔时间加上其内部定时任务执行完成所需的时间。
230+
227231### 系统对话框
228232
229233- alert : 警告框
You can’t perform that action at this time.
0 commit comments