位置: 编程技术 - 正文

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

  • 所得税汇算清缴招待费扣除标准
  • 城镇土地使用税的征税范围
  • 高校报销需要增值税专用发票吗
  • 买材料通过公司走账合法吗
  • 私对公转账收税吗
  • 社保可以抵扣什么税
  • 分支机构属于小型微利企业吗
  • 公司筹建期间可以多久
  • 云信付款如何贴现
  • 赠送的商品怎么缴纳增值税
  • 企业名称变更需要重新核名吗
  • 利润分配包括缴纳所得税吗
  • 一般纳税人从小规模纳税人处进货
  • 行政事业单位净资产关系图
  • 电子营业执照可以开通抖音小店吗
  • 已经作废了的发票怎么查
  • 税控服务费全额抵扣文件
  • 税收分类编码里的劳务是劳务派遣的意思吗
  • 增值税申报内容及步骤
  • 利润表其他综合收益的税后净额怎么算
  • 2019小规模纳税人增值税起征点
  • 提供出口收汇核算方法
  • 员工娱乐活动比赛项目
  • windows11开始菜单怎么居中
  • 电脑管家玩游戏卡吗
  • css 栅格
  • php分页函数封装
  • wordpress怎么上传网站
  • vue onshow
  • 悬崖边上的门
  • 最常用的基金业务
  • php操作字符串函数
  • 集成代码
  • 如何使用应用程序
  • 猿创部落是干什么的
  • 研发人员餐费
  • php中命名空间的路径
  • 应纳税所得额100-300万税率
  • 软件企业高新技术产品证明材料
  • 小规模纳税人企业所得税2023
  • db2 deadlock
  • sql语句中的decode函数
  • 企业投资股票收益怎么交税
  • 装修工程是可以做什么的
  • 不能防止sql注入
  • 企业筹建期间可以上市吗
  • 销售提成如何入账
  • 发票类别包含哪几种
  • 以前年度损益调整账务处理分录
  • 收到社保局的生育津贴并付给职工如何入账
  • 转让无形资产使用权税率
  • 增值税发票红冲和作废的区别
  • 私人贴现做账
  • 每月分红会计分录
  • 简易征收是什么意思和一般纳税人
  • mysqld关闭
  • Linux系统中uniq命令的基本使用教程
  • linux使用范围
  • linux ...
  • mac ds_store
  • Win10 Mobile首个RS2预览版14905快速版今日开始推送
  • linux 系统查看
  • 固定ie浏览器
  • cocos2d怎么用
  • 动态设置class
  • bootstrap-treeview.js
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(8) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧
  • Bullet(Cocos2dx)之凸多面体形状和组合形状
  • 使用jquery实现的项目
  • js封装是什么意思
  • 使用JQuery选择HTML遍历函数的方法
  • jquery轮播图代码
  • js层级选择器
  • eclipse折叠代码块if else工具
  • python中的zip()函数详解
  • 原生javascript
  • 税务更名需要什么材料
  • 软件即征即退软件是什么
  • 税务局税收风险排查总结
  • 到税务局领购免税产品
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设