位置: 编程技术 - 正文

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

  • 应交增值税和未交增值税都有余额
  • 出口企业何时选择免(征)税申报方式?
  • 什么类型的电子商务
  • 财税人员岗位职责
  • 外来原始凭证包括哪些入库单
  • 异地预缴税款怎么抵扣
  • 其他应付款长期挂账违反什么规定
  • 已认证未抵扣的进项怎么填写
  • 个体开建筑服务税率多少?
  • 事业单位个税可以抵扣吗
  • 银行汇票分几种
  • 公司 捐赠
  • 个人账户转公司账户需要交税吗
  • 收到其他银行划回的款项属于什么科目
  • 销售机械设备的税率是多少
  • 境外所得税收抵免政策
  • 发票入账后还能冲红吗
  • 期初建账实验步骤
  • 股票怎么算印花税收入
  • 贷款本金余额具体是什么意思
  • 境外个人所得税计算
  • 非居民企业可以享受小微企业所得税优惠政策吗
  • 收到退回款项
  • 业务招待费进项税额转出表二
  • 如何修复错误 OC3 INVT CHF100a
  • 高新技术企业如何节税
  • 社保挂靠会计处理?
  • phpfilter
  • 无形资产期末余额在哪方
  • 为什么要进行税费改革
  • 允许加计扣除的委托境外研发费用
  • 残保金漏报如何处理
  • 路径规划的基本流程和方法
  • 大二一学期学分多少合适
  • 使用spring可以实现声明式事务吗
  • phpcms使用教程
  • 处置长期股权投资产生的投资收益是什么
  • python time. time
  • 加油的电子发票在哪里找
  • 电子汇票提示付款申请
  • 不征税收入和免税收入的本质区别
  • 积分兑换商品怎么查快递
  • 红字冲销怎么做账
  • 借别人钱收据怎么写
  • 原材料贷方余额怎么转成本
  • 公司注销后应收账款转给个人
  • 公司广告制作费用申请报告
  • 个人所得税多计算了一个月工资怎么办
  • 疫情期间购买消毒弥雾机的请示
  • 小规模纳税人需要每月报税吗
  • 过路费属于会计哪个科目
  • 固定资产报废如何记账
  • 事业单位的在建工程包括
  • 预付账款无法取得发票如何处理
  • 个体工商户建行贷款条件
  • 年初建账考虑要点有哪些
  • 如何编写wa
  • win7怎么操作
  • win7浏览器升级到ie11
  • windows个性化定制包含
  • 教大家如何重做作业
  • win7系统禁止更新
  • win7音频服务未响应
  • 如何解决windows无法访问指定设备
  • windows8使用技巧
  • 微信小程序自动跳转怎么关闭
  • unity learn premium
  • 如何用jquery
  • TypeScript Type Innference(类型判断)
  • android入门视频教程
  • jquery ui draggable
  • android网络访问异常提示有哪些
  • excel执行python脚本
  • 税务安装步骤
  • 广州市税务局官网电话
  • 河南省医保卡中心电话
  • 朝阳区下面分几个区
  • 车船税填表说明
  • 地税局上班时间是几点
  • 青岛工商全程电子化
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设