位置: 编程技术 - 正文

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内存条)

  • 办税人是纳税人吗
  • 税收优惠政策有什么好处
  • 对公转账房租怎么备注
  • 印花税计入税金及附加吗
  • 增值税勾选统计后怎么申报
  • 应交税金借方余额代表什么
  • 资产减值损失与资产处置损益区别
  • 个人给公司开税票有没有影响
  • 煤炭企业在建工程核算探讨
  • 财政补贴是什么
  • 已抵扣专用发票冲红怎么操作
  • 基金公司的资本结构
  • 有形动产租赁印花税税率是多少
  • 中小企业固定资产管理存在的问题
  • 暂估入库会影响利润吗
  • 个人账户付款到对公账户
  • 如何开展分公司
  • 如何设置老板键
  • 电脑屏发黄怎么调正常哪
  • 农民专业合作社法
  • 在建工程进项税额抵扣规定
  • 增值税发票销货清单怎么打印
  • windows 11 正式版实际使用体验如何?
  • 没报关的货物还需要开发票嘛
  • 维多利亚瀑布有多高?多宽?
  • 公司投资一家公司然后再投资
  • php怎么加css
  • 增值税减免附加税用计提吗
  • 汇算清缴有问题怎么办
  • 可供出售金融资产的会计处理
  • 无盘领发票要怎么办
  • 公司的财务报表能看出什么
  • 红字发票开错可以重开吗
  • phpcms数据库文件
  • mysql中join的用法
  • 织梦模板安装完整教程
  • 房产原值是含税还是不含税
  • 房地产企业开发成本科目明细
  • 利润计算公式是什么折扣
  • 在建工程如何转固
  • 开票内容不在经营范围内
  • 小规模未开票收入超过30万如何申报
  • 坏账准备计提方法一经确定不得随意变更这种做法体现了
  • 一次性医疗补助金怎么计算
  • 每月扣除的公积金怎么查
  • 增值税专票开具与发票专用章保管
  • 汇算清缴业务招待费调整分录
  • 固定资产折旧方法不考虑净残值
  • 企业固定资产清理流程
  • 产品利润率如何计算
  • 会计计量属性是什么意思
  • 企业为什么要设置仓库
  • 新增注册资金
  • windows8命令提示符命令大全
  • win7更改win10系统要怎么更改
  • 开启linux系统路由转发功能的语句
  • linux vim使用
  • linux播放mp3命令
  • WIN10专业版怎么查看操作位数
  • linux测试端口连接
  • windows mobile10
  • android的游戏
  • cocos2dx schedule
  • unity固定位置随机生成物体
  • unity3D游戏开发
  • jquery实战
  • jquery动态设置元素的值
  • node.js文件流
  • js表单事件有哪些
  • 你必须知道的家长六种类型
  • jquery 鼠标悬浮显示文字
  • jquery监听span内容的变化
  • python的iloc
  • jquery.handleerror
  • 江苏电子税务局官网登录入口
  • 广东 电子税局 app
  • 公务员中了彩票怎么领取
  • 2022年最新最全食物嘌呤含量一览表
  • 伊川娘娘山传说
  • 北京ca证书下载安装流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设