zoukankan      html  css  js  c++  java
  • 定时器

    定时器的执行原理:

    因为js是单线程的,而定时器不能像多线程那样指定时间运行,它在js中仅仅只是计划代码在未来的某个时间执行,执行的时机是不能保证的。实际上浏览器负责进行排序,指派某段代码在某个时间点运行的优先级。定时器对队列的工作方式是当特定时间过去后将代码插入,执行的时间还未确定,只有当等主线程空闲时且该函数代码位于队首,才会执行函数代码。

    setInteral的问题

    setInteral这个函数在一段时间后在js线程中插入代码,但是在线程中如果有很久的其他函数代码运行,就会插入很多次代码。但是,js引擎聪明,只有在线程中没有setInteral的代码才会插入代码。因此这种重复定时器的规则有两个问题(1)某些间隔会被跳过(2)多个定时器的代码执行之间的间隔可能会比预期的小。

    为了避免setInteral的这2个问题,在js高级教程设计中解决方式是链式调用

    setTimeout(function(){
        setTimeout(arguments.callee,interval)
    },interval)
  • 相关阅读:
    五、MongoDB的索引
    四、MongoDB的查询
    各模块启动
    HBase1.2.6 javaapi查看rowkey 所在分区等信息
    HBase1.2.6 预分区后,数据不进入预定分区的一个 bug
    SparkStreaming程序设计
    SparkSQL程序设计
    Spark SQL概述
    常用RDD
    spark程序设计
  • 原文地址:https://www.cnblogs.com/tzzf/p/8053287.html
Copyright © 2011-2022 走看看