位置: 编程技术 - 正文

setTimeout和setInterval的深入理解(settimeout和setinterval在安卓机无效)

编辑:rootadmin
大概半年前发表过一篇关于setTimeout和setInterval的文章,但是现在回去仔细一看发现其实存在很多不足以及错误。事实上,setTimeout和setInterval并没有我们字面上理解的那么简单。要真正掌握并理解这两个方法,还得从javascript的单线程机制说起。 【开门见山】setTimeout和setInterval是如何工作的呢? 我们知道,js是单线程执行的。所以其实setTimeout和setInterval所谓的“异步调用”事实上是通过将代码段插入到代码的执行队列中实现的。 而如何计算插入的时间点呢?自然是要用到我们所说的timer,也就是计时器。当执行setTimeout和setInterval的时候,timer会根据你设定的时间“准确”地找到代码的插入点。当队列“正常”地执行到插入点时,就触发timer callback,也就是我们设定的回调函数: 上面这个例子就是我们通常的用法,应该容易理解。可是,timer真的能那么准确么?代码队列的执行真的能那么正常么? 【斩草除根】重新认识所谓的“异步” 刚刚已经知道,事实上setTimeout和setInterval只是简简单单地通过插入代码到代码队列来实现代码的延迟执行(或者说异步执行)。但是事实上所谓的异步只是一个假象——它同样运行在一个线程上! 那么问题就来了,要是在代码插入点前的代码执行时间超过了传入setTimeout或setInterval的设定时间会怎样呢?让我们来看看这段代码: 你觉得这段代码的执行结果是什么呢?答案是,alert永远不会出现。 这是为什么呢?因为,while这段代码没有执行完,插入在后面的代码便永远不会执行。 综上所述,其实JS终归是单线程产物。无论如何“异步”都不可能突破单线程这个障碍。所以许多的“异步调用”(包括Ajax)事实上也只是“伪异步”而已。只要理解了这么一个概念,也许理解setTimeout和setInterval也就不难了。

推荐整理分享setTimeout和setInterval的深入理解(settimeout和setinterval在安卓机无效),希望有所帮助,仅作参考,欢迎阅读内容。

setTimeout和setInterval的深入理解(settimeout和setinterval在安卓机无效)

文章相关热门搜索词:settimeout和setinterval在用法上的区别,settimeout和setinterval谁快,setTimeout和setInterval,settimeout和setinterval谁快,settimeout和setinterval在用法上的区别,setTimeout和setInterval的区别,setTimeout和setInterval的区别,setTimeout和setInterval的区别,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript内存管理详细解析 介绍低层次的语言,如C,具有低级别的内存管理命令,如:malloc()和free(),需要开发者手工释放内存。然而像javascript这样的高级语言情况则不同,对象

JavaScript对内存分配及管理机制详细解析 你可能听说过JAVA、.NET、PHP这些语言有垃圾回收的内存管理机制,但是很少会听到JavaScript也有自己的内存管理机制,JavaScript同样有着类似的垃圾回收功

javascript中怎么做对象的类型判断 最近在翻看JohnResig的大作《ProJavaScriptTechniques》,里面讲到了如何做javascript的类型判断的问题。文中介绍了两种方式,一种是使用typeof,另一种是使用co

标签: settimeout和setinterval在安卓机无效

本文链接地址:https://www.jiuchutong.com/biancheng/376097.html 转载请保留说明!

上一篇:JavaScript中this的使用详解(javascript中的this属性)

下一篇:javascript内存管理详细解析(js内存条)

  • 多交了企业所得税,下年度退税,需要更正撒意思
  • 公司代扣个人所得税有完税凭证明
  • 印花税核定依据和核定比例
  • 企业所得税退税的会计分录怎么做
  • 居民和企业
  • 高新企业收到政府补贴怎么做账
  • 回购股票不注销没有意义
  • 利润表的营业成本包括哪些
  • 会务费税前扣除材料
  • 现金折扣退回会计分录
  • 餐饮加盟公司怎么经营
  • 未做工程税费如何计算
  • 公司做账是做什么
  • 咨询服务费属于什么会计科目
  • 应收票据借方表示负债吗
  • 城市建设维护税是什么意思
  • 离职补偿金要交个税的例子
  • 电商销售进对公账户怎样做账
  • 发票代码和发票号码在一起怎么办
  • 个体户查账征收没有成本票怎么办
  • 长期股权投资计提减值准备
  • 企业收到的贷款会计分录
  • 1697511073
  • 发生固定资产了怎么做账
  • 电脑专用电源转换器
  • mac如何配置
  • 收到的进项发票要在多久前认证
  • 红字专用发票是红色的吗
  • php入门基础教程
  • centos只有lo
  • php数组函数,选班长
  • php最好的编程语言
  • 未到期的应收票据办理贴现会计分录
  • php运用的技术php开发有哪些实用的技术
  • 房地产企业如何计算土地使用税
  • php中实现文件上传需要用到哪几个函数
  • 企业筹建期发生的费用有哪些
  • php防止用户重度登录
  • 无偿划转的资产交什么税收
  • 建筑工程价款结算
  • 任何单位和个人发现洗钱活动有权向什么举报
  • 零申报的公司有财务报表吗
  • access宏操作
  • 差旅费抵扣进项税额
  • 企业返聘退休人员需要交社保吗
  • 库存现金怎么做预算会计
  • 异地预缴税款怎么抵扣
  • 工程结算与工程施工
  • 汇算清缴期间费用社保填哪里
  • 营改增后服务业账务处理
  • 营改增阶段
  • 固定资产残值怎么做账务处理
  • 税收优惠应计入那个科目
  • 研发费用加计扣除比例及计算方法
  • 销项税和进项税的借贷方向
  • 农业技术人员是什么意思
  • 建筑行业总产值占我国GDP的比重
  • 使用筷子就餐会不会传染乙肝病毒
  • xp系统提升cpu最高性能
  • 怎么在windows
  • windows8.1企业版build9600
  • apt-get download
  • efi ghost win7
  • javascript date()
  • unity锚点
  • android入门视频教程
  • linux中使用bash是什么意思
  • javascript内存管理
  • Node.js Mongodb 密码特殊字符 @的解决方法
  • ubuntu on android
  • android 按键
  • 炉石传说用什么语言开发的
  • python正则\b
  • keycode输入cat
  • Android之Notification
  • 地税税务稽查管理办法
  • 手机陌陌卸载还有记录吗
  • 合格的税务人
  • 作为税务人员哪些基本素质
  • 贵州社保在线年审官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设