jquery - 等待函数完成

标签 jquery ajax asynchronous

如果我正确理解jquery和javqascript,它是异步的。我不明白的是,如果它只是异步的ajax部分,加载和获取......或一般的一切。

例如,如果我需要在表单中附加一个列表菜单并具有:

$('#id').append("<option value='1'>1</option>") - etc., in this demo the <select id="category> is missing

现在我想要:

$('#category option[value="1"]').attr('selected', 'selected');

当然,我希望在附加菜单之后选择值 1,而不是之前,因为它不存在。

我想知道脚本是否等待追加完成,并且逐行写入两行是很容易的,或者是否需要在第一行上放置一些回调函数,以便在追加完成后执行第二行?

它可以在我的浏览器上运行,但我有一台速度很快的计算机,我担心如果它是异步的,它会在附加选择之前尝试选择一些速度较慢的计算机。

或者只是ajax调用异步?这是显而易见的事情,也是初学者喜欢的事情,但是我找不到好的关键字来查明这个基本的事情,所以我在这里问。

最佳答案

只有 AJAX、setTimeout、setInterval 和事件处理程序是异步的。其他一切都同步运行。

因此,您可以放心地假设当第二行执行时,第一行已经执行。

确定某人是否异步执行的一个好方法是检查您是否传递回调函数。如果您这样做并且执行时间取决于外部因素(网络速度)或者需要一些时间来执行(例如淡入淡出元素),那么它很可能是异步执行的。然而,像 $.each 这样的东西即使与回调函数一起工作,也会同步运行。但在这种情况下,执行速度不会被人为减慢或取决于外部因素,因此没有理由异步。

关于jquery - 等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5693366/

相关文章:

javascript - 存储 Ajax 响应以显示给其他用户

javascript - 试图让异步代码在for循环内同步运行

javascript - 有什么方法可以将参数从一个页面发送到另一个页面而不用在 url 中发送吗?

javascript - ASP.NET MVC/jQuery/AJAX : link fails to work first time, 但第二次工作(页面重新加载后)

jQuery 日期选择器禁用 7 天以内的所有日期

php - AJAX JQuery 的问题

Javascript 异步循环处理

asynchronous - .NET Core Web API 异步数据返回

JavaScript 问题和 IE(style.display 属性)

javascript - 字符串转二维数组