位置: 编程技术 - 正文

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

  • 税务机关是什么
  • 增值税发票上数量与单价
  • 纳税人识别号在哪里能查到
  • 企业可以申请专项债券吗
  • 所得税费用期末应转入
  • 小微企业所得税税率2.5% 10% 25%
  • 抄报未反写影响开票吗
  • 合伙企业有一般账户吗
  • 房产税的原值是如何确定的
  • 土地递减销售收益怎么算
  • 房地产企业配套设施的核算内容
  • 政府收回土地使用权
  • 准予抵扣的进项税范围
  • 商铺租赁合同的用途怎么写
  • 报关单和发票不符怎么办
  • 无形资产发生减值的原因
  • 逾期支付工程款利息计算
  • 月末本年利润余额怎么算
  • 公司报销员工的首饰可以税前列支吗
  • 建筑企业的职工由于不服管理违反规章制度
  • 公司名下没车能报油费吗
  • 房产代理公司收客户钱违法
  • 购入苗木的会计分录
  • 产品调试费计入什么科目
  • 红冲发票后 库存怎么处理
  • 企业所得税季报人数怎么填
  • 双系统怎么卸载ubuntu
  • caxa电子图板2007教程
  • c盘垃圾太多需要重装系统嘛
  • 没有开工没有收入用书面语言表达
  • 保险赔款确认函
  • 手工做账月末怎么结转
  • PHP:pg_close()的用法_PostgreSQL函数
  • 附有退回条件的销售商
  • mysql实现事务
  • 软件开发企业的税收优惠政策
  • php格式转换
  • php二维数组查询指定值
  • 报销差旅费凭证怎么做
  • 完美解决在ThinkPHP控制器中命名空间的问题
  • php数组分类
  • 注册资金抽回
  • java解析xml常用方式
  • 用友u8反结账反记账的操作步骤
  • 增值税发票已经认证了,但是税票原票没给,会有什么后果
  • 商业承兑汇票贴现流程
  • 本年利润的会计分录有哪些
  • 电子软件是如何诞生的
  • 所得税报表的营业成本包括费用吗
  • 如何计提固定资产折旧费
  • 长期股权投资中同一控制和非同一控制的区别
  • 服务业有制造费用吗
  • 公司股权作价转让会计分录案例
  • 租赁动迁补偿条款
  • 收购一家公司需要多少股份
  • 外购的商品用于生产
  • 其他应付重分类到其他应收
  • xp系统如何安装软件
  • windows xp升级为windows 7
  • mac电脑如何下载app
  • linux 禁用root
  • xp系统怎么关闭更新系统
  • xp系统插u盘没反应怎么解决
  • linux 文件查看
  • centos ohmyzsh
  • win7 显示日期
  • 请问在javascript程序中
  • 如何短时间内学会打字
  • python输入错了怎么办
  • jquery理解
  • 编写注册表文件
  • 狗刨教学视频分解动作视频
  • js jquery区别
  • android基础知识总结
  • python twilio
  • 顺丰收取关税合理吗
  • 开增值税专用发票需要注意什么
  • 青岛网上办税服务厅登录
  • 欠款抵押房产可以直接过户吗
  • 国地税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设