您现在的位置是:群英 > 开发技术 > web开发
javascript同步是什么意思
Admin发表于 2022-09-05 17:28:02457 次浏览
今天这篇给大家分享的知识是“javascript同步是什么意思”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“javascript同步是什么意思”文章能帮助大家解决问题。


JavaScript是同步的;JavaScript始终是同步的并且是单线程的,只有在可以进行ajax调用的意义上是异步的;同步表示如果正在页面上执行JavaScript代码块,则该页面上当前将不会执行其他JavaScript。

如何快速入门VUE3.0:进入学习

本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript是同步的吗

JavaScript始终是同步的并且是单线程的。

如果您正在页面上执行JavaScript代码块,则该页面上当前将不会执行其他JavaScript。

JavaScript仅在可以进行Ajax调用的意义上是异步的。

Ajax调用将停止执行,其他代码将能够执行,直到调用返回(成功或其他)为止,此时回调将同步运行。此时将不会再运行其他代码。它不会中断当前正在运行的任何其他代码。

JavaScript计时器与此相同类型的回调一起运行。

将JavaScript描述为异步可能会引起误解。准确地说JavaScript是同步的且具有各种回调机制的单线程。

jQuery在Ajax调用上有一个选项可以使它们同步(带有该async: false选项)。初学者可能会不正确地使用它,因为它允许使用一种更传统的编程模型,而这种模型可能会更习惯。有问题的原因是此选项将阻止页面上的 所有

JavaScript,直到完成为止,包括所有事件处理程序和计时器。

扩展知识

Javascript语言是一门单线程的语言

单线程和异步确实不能同时成为一个语言的特性。js选择了成为单线程的语言,所以它本身不可能是异步的。因为浏览器只分配给js一个主线程,用来执行那些函数,一次只能执行一个,这些任务形成一个任务队列排队等候执行,但前端的某些任务是非常耗时的,比如网络请求,定时器和事件监听,如果让他们和别的任务一样,都老老实实的排队等待执行的话,执行效率会非常的低,甚至导致页面的假死。

JavaScript单线程如何实现异步效果

所以,浏览器为这些耗时任务开辟了另外的线程,主要包括http请求线程,浏览器定时触发器,浏览器事件触发线程。宿主环境(浏览器)通过事件驱动方式使得js具备了异步的属性 。

所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。

CPU忙不过来,倒也算了,但是很多时候CPU是闲着的,因为IO设备(输入输出设备)很慢(比如Ajax操作从网络读取数据),不得不等着结果出来,再往下执行。

具体来说,异步运行机制如下:

所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。

主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。

一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",那些的异步任务,进入执行栈,开始执行。

主线程不断重复上面的第三步。


通过以上内容的阐述,相信大家对“javascript同步是什么意思”已经有了进一步的了解,更多相关的问题,欢迎关注群英网络或到群英官网咨询客服。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: JavaScript
相关信息推荐
2022-05-17 15:54:38 
摘要:怎么利用nodejs给图片添加水印?下面本篇文章通过示例来介绍一下使用node为图片添加全页面半透明水印的方法,希望对大家有所帮助!
2022-11-12 17:41:27 
摘要:vue for循环中key有什么作用?下面本篇文章给大家介绍一下vue for循环中key的作用,希望对大家有所帮助。
2021-12-28 18:56:57 
摘要:Python读取txt文件有几种方法?读取文件内容是比较常见的操作,在Python中有三种函数能帮我们实现这个操作,接下来我们就具体的来了解看看,如何实现Python读取txt文件,及实现方法的区别在哪?
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部