位置: 编程技术 - 正文

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

  • 业务招待费的税金可以抵扣吗
  • 办理出口业务流程
  • 劳动合同扣税太狠了吧
  • 建筑企业印花税的计税依据
  • 母公司与子公司的区别
  • 给员工发礼品发什么礼品最实惠
  • 事业单位装修费用
  • 制造费用月末不可能有余额
  • 支出和成本的关系和区别
  • 股权评估与资产评估的关系
  • 房地产企业借款费用
  • 小规模纳税人销售额
  • 售后回购涉税处理
  • 公司开办费有哪些
  • 库存现金日记账和库存现金总账都应逐日逐笔
  • 环境保护税税率
  • 园林绿化苗木增值税抵扣税率是多少?
  • 初级会计职称考试时间
  • 发票专用章盖错地方了可以用吗
  • 总账会计需要做账吗
  • 软件开发工资低
  • 企业购买汽车需要缴纳什么税
  • 登记变更是什么意思
  • 免税销售额需要价税分离吗
  • 住宿费本地的计入什么费
  • 无法删除文件提示怎么办
  • 下花园6路公交车时间表
  • 宝塔linux面板 7.5.2 腾讯云专享版
  • win10专业版用户名和密码怎么取消
  • 清理macbook清除系统垃圾
  • 羊肚菌的功效和价格
  • 发票开出未认证丢失怎么处理
  • 经销商会议流程安排
  • 海关发票丢失怎么处理
  • php文件怎么写
  • 基训包括哪些
  • 本地部署gpt4
  • 训练集验证集和测试集
  • 银行存款手工明细分类账
  • 供货方代垫运费会计分录
  • 织梦添加文章如何修改高级参数
  • phpcms默认密码
  • PostgreSQL教程(四):数据类型详解
  • sql跨服务器查询语句
  • 企业哪些情况下需要交税
  • 现金及现金等价物包括哪些科目
  • 企业银行流水可以不给税务吗
  • 增值税当月缴纳还是次月缴纳
  • 待抵扣增值税退税
  • 视频制作开票属于现代服务吗?
  • 差旅费出差补助标准
  • 长期待摊费用摊销计算公式
  • 金融工具减值准则
  • 什么是现金流量表
  • 应付利息怎么记账
  • 委托设置什么意思
  • sql查询当前年份
  • sqlserver2019的使用
  • wkqkpick.exe进程是什么
  • 服务器迁移至新服务器方法
  • WinAce.exe - WinAce是什么进程
  • xp系统怎么禁止软件联网
  • 不用第三方软件获取鼠标坐标
  • windowsxp是什么时候正式发布
  • ixapplet.exe - ixapplet是什么进程 有何作用
  • win8开始菜单在右边
  • 电脑禁用u盘软件
  • win10 cpu使用率高怎么办
  • 怎样解决windows照片查看器无法显示此图片
  • 侠客驱动是什么意思
  • xp磁盘空间不足怎么办
  • cocos2dx 3.3 + QT5.3制作游戏编辑器
  • echarts怎么样
  • 如何创建node项目
  • unity ugui合批
  • Android AsyncTask简要分析
  • jquery操作元素的方法
  • 新疆税务干部学校招聘
  • 汉口市中心
  • 怎样查询上一年的国税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设