异步/同步 JavaScript

2024-01-30

我在理解异步和同步 Javascript 之间的区别时遇到了一些困难,希望有人能对此有所了解。

我知道 Javascript 本质上是同步的,但您可以使用异步事件/回调来改变程序流程。但是,如果您调用包含 AJAX 且没有回调的函数,会发生什么情况?

例如,如果我有以下代码,其中foo()包含某种服务器查询和foobar()包含一些输出文本:

foo();
foobar();

Will foobar()在内部逻辑之前调用foo()已完成,或者浏览器会等待foo()在调用之前完全执行foobar()? (这看起来很简单,但我的困惑来自于回调以及它们是否在所有情况下都绝对需要控制程序流程,即如果foo(foobar)总是必要的。)

另外,如果foo()包含一个在客户端快速执行但在服务器上需要很长时间才能处理的服务器调用,是回调是我可以让我的程序等待的唯一方法foo()执行完毕了吗?


foob​​ar() 确实会在 foo() 中的 Ajax 调用完成之前被调用...

除非(这是第二个问题的答案)您指定 Ajax 调用应该是同步的,这是一个选项。这样做将迫使用户等到呼叫完成才能执行任何操作,因此这通常不是最佳选择。使用回调通常是最好的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异步/同步 JavaScript 的相关文章

  • 如何阻止直接访问我的 JavaScript 文件?

    我使用 Minify 来缩小并缓存所有脚本请求 我只希望我的用户能够访问 JavaScript 文件的缩小版本 缩小位于www example com min我的脚本位于www example com scripts 如何阻止直接访问doc
  • 浏览器视口大小(以设备像素为单位)

    Goal 我希望 Flash 能够获得有关浏览器视口宽度和高度 以设备像素为单位 的准确信息初始化 调整大小或浏览器缩放事件时 规格 我需要将 flash 嵌入到在 chrome safari firefox 等中运行的 html 页面中
  • 在 Internet Explorer 中使用什么来监视 jscript 内存使用情况

    我们正在调试 GWT 应用程序 在 Firefox 中运行正常 在 IE6 0 中开始运行正常 但一段时间后 它就会崩溃并开始爬行 经过一些测试后 我们怀疑存在一些内存问题 使用了太多内存 内存泄漏等 除了使用taskmanager和pro
  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • nodejs (libuv) 事件循环是否在一个阶段(队列)中执行所有回调,然后再进入下一阶段或以循环方式运行?

    我正在研究 Node js 中 libuv 提供的事件循环 我遇到了关注 Deepal Jayasekara 的博客 https blog insiderattack net event loop and the big picture n
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • ReactTransitionGroup 不适用于 React-redux 连接组件

    我正在开发一个更大的项目 但我创建了这个简短的示例来说明问题 如果我使用Box组件 它的工作原理 它在控制台中输出componentWillEnter and componentWillLeave当我们点击按钮时 如果我使用BoxConta
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np

随机推荐

  • 如何知道应用程序是由调试器 (Visual Studio) C# 启动的

    在我的 C 代码中 我想知道应用程序是否已由调试器 在我的例子中为 VisualStudio 启动 有谁知道如何获取这些信息 TIA 系统 诊断 调试器 IsAttached http msdn2 microsoft com en us l
  • CakePHP2 中的多态关联

    我有3个模型 Page Course and Content Page and Course包含元数据和Content包含 HTML 内容 Page and Course两者都有很多Content Content属于Page and Cou
  • 使用 Ramda 在循环中从多个数组中取出前 X 个总项目

    我有一个数组数组 想编写一个返回顶部的函数x项目数 通过按顺序从每个数组中获取项目 这是我所追求的一个例子 const input 1a 2a 3a 4a 5a 1b 2b 3b 4b 5b 1c 2c 3c 4c 5c 1d 2d 3d
  • 常见的日志记录 jar 与 Apache 轴 Soap 客户端冲突

    我在尝试使用 axis 调用 SOAP Web 服务时遇到此异常 基本上我已经写了一个轴客户端 org apache commons discovery DiscoveryException Class org apache commons
  • 了解 Zeromq Java 绑定

    我正在研究 Zeromq 作为 Java 项目中的消息传递解决方案 但我发现有关 Java 绑定的说明有点难以遵循 http www zeromq org bindings java http www zeromq org bindings
  • C# 获取非托管 dll 的版本

    我正在从托管 c 代码调用非托管 dll 并想检查我正在调用正确的版本 我尝试加载程序集 然后获取资源文件 然后获取版本 的代码是 cur version Assembly LoadFile X Workspace yreceipts po
  • 等待用户从终端输入 R

    当从命令行运行我的脚本作为 Rscipt myscript R 时 我能够等待 R 中的用户输入 如下所示并从 stdin 读取输入 cat Enter word word lt readLines file stdin 1 print w
  • 使用 .cssRules 访问跨域样式表

    当我尝试访问外部域上托管的某些 CSS 文件时 我在 Firebug 中收到此错误 Security error code 1000 rules styleSheets i cssRules 我正在使用的代码是 document ready
  • 使用 youtube-dl 搜索 Youtube 视频

    我正在尝试构建一个 Discord 音乐机器人 我需要使用用户给出的关键字搜索 YouTube 目前我知道如何从网址播放 loop loop or asyncio get event loop data await loop run in
  • 将 C++/CLI 与 NUnit 结合使用的限制

    这个答案 https stackoverflow com questions 13699 choosing a c unit testing toolframework 13897关于 C 单元测试框架的问题提出了一种我以前没有想到的可能性
  • 在不使用索引的情况下替换 pandas DataFrame 中选定单元格的值

    这是一个非常相似的问题这个问题 https stackoverflow com questions 13842088 set value for particular cell in pandas dataframe但有一个关键的区别 我选
  • GitHub:如何将开放的拉取请求添加到本地存储库?

    我正在使用NSDate 扩展 https github com erica NSDate Extensions我的 iOS Xcode 项目中的插件 主存储库有一些错误 似乎在两个 Pull 请求中得到了修复 https github co
  • django TypeError:get() 获得关键字参数“invoice_id”的多个值

    我对 python 和 django 比较陌生 我有以下其余 api 视图 class InvoiceDownloadApiView RetrieveAPIView This API view will retrieve and send
  • 缺少rabbitMQ配置文件

    我正在使用 Rabbitmq 3 7 2 和 Erlang 20 2 并且 bydefualt RMQ 配置文件丢失 在以下路径 C Users vxadmin AppData Roaming RabbitMQ config 基于我采取的步
  • 在 Android 上添加的文件夹通过 USB 不可见

    我正在尝试将图片保存在 Android 上的子文件夹中 这是我的一些代码 File path Environment getExternalStoragePublicDirectory Environment DIRECTORY DCIM
  • R - 按列名 AS CHARACTER 对 data.frame 进行排序

    我知道我可以这样订购 data frame test data frame A c 4 2 4 B c 8 3 2 ordered test with test order A B 但是 当列由列名指定为字符变量时 如何完成同样的事情呢 这
  • Lua - 初始化[重复]

    这个问题在这里已经有答案了 我无法在 Arch Linux 下正确初始化 lua Lua 最新版本 这是我的代码 include
  • 为特定风格和 buildType 定义 buildconfigfield

    我有两种口味 比如说香草和巧克力 我还有 调试 和 发布 构建类型 并且我需要 Vanilla Release 的字段为 true 而其他 3 个组合应该为 false def BOOLEAN boolean def VARIABLE VA
  • 检测 window.location 的变化

    我正在尝试检测 window location 中的更改 例如 如果用户尝试重新加载页面 则会收到通知 但我似乎找不到方法来做到这一点 有一些与之相关的事件吗 Thanks The unload当用户离开页面时触发该事件 还有一个befor
  • 异步/同步 JavaScript

    我在理解异步和同步 Javascript 之间的区别时遇到了一些困难 希望有人能对此有所了解 我知道 Javascript 本质上是同步的 但您可以使用异步事件 回调来改变程序流程 但是 如果您调用包含 AJAX 且没有回调的函数 会发生什