当前位置: 首页 > 面试题库 >

JavaScript何时同步?

沙小白
2023-03-14
问题内容

我一直对JavaScript始终是异步的印象。但是,我了解到在某些情况下不是这样(即DOM操作)。关于何时何时同步以及何时异步,有什么好的参考?jQuery会完全影响吗?


问题答案:

JavaScript始终是同步的并且是单线程的。如果您正在页面上执行JavaScript代码块,则该页面上当前将不会执行其他JavaScript。

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

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

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

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



 类似资料:
  • 本文向大家介绍javascript同步服务器时间和同步倒计时小技巧,包括了javascript同步服务器时间和同步倒计时小技巧的使用技巧和注意事项,需要的朋友参考一下 之前在网上看到有人提问,如何在页面上同步显示服务器的时间,其实实现方法有几种,可能 一般人立马就想到可以使用Ajax每隔一秒去请求服务器,然后将服务器获取到时间显示在页面上,这样虽然能够实现,但存在一个很大的问题,那就是每隔一秒 去

  • forEach如何实现同步

  • 我正在试图理解为什么下面的代码会像它那样运行。具体而言,为什么第一个表达式会输出的完整和最终版本?我意识到这和吊装有关(也许?)或者其他一些我没有完全理解的概念。只是在网上搜索这个是很有挑战性的,因为我没有合适的词库来搜索我想知道的东西。 我在为自己编写代码时发现了这一点,其中我希望通过for-loop看到对象在每次迭代时的状态。我很惊讶地看到输出到控制台的对象在每一个回合都是一样的;该状态是整个

  • 我正在为我的web应用程序构建一个具有特色的时间线,我正在通过使用以下方法来操作添加到时间线中的元素: 问题是left_position根据您当前的时区是不同的,因为新的date函数返回不同的信息。有没有强制时间总是与纽约时间一致? data2.time_going在Unix时间戳中,例如设置为1368687333。

  • 问题内容: 我有一个纯JavaScript Promise(内置实现或poly-fill): 根据规范,Promise可以是以下之一: “解决”和“解决” “解决”和“拒绝” “待定” 我有一个用例,希望同步查询Promise并确定: 承诺解决了吗? 如果是这样,承诺是否得到解决? 我知道我可以用来安排Promise更改状态后异步执行的工作。我不是问怎么做。 这个问题具体是关于 对Promise状

  • 我是JavaScript和React的新手,我正试图远离教程,所以为了自己的学习利益,我开始制作一个简单的应用程序,但遇到了功能异步运行的障碍。 在中,有一个,其回调中包含以下内容: 如何使上述两个函数同步运行使用在中设置的,但下面的显示在完成之前启动。 我已经阅读了一些参考资料,其中提到使用promise,但我不知道如何应用它。。。我还想知道是否可以通过/实现。 完整(ish)代码:(为了简单起