jquery - 等到函数完成

Jer*_*ry2 1 ajax jquery asynchronous

如果我正确理解jquery和javqascript,它是异步的.我无法理解的是,如果只是ajax部分,负载和get ...或者一般的所有内容都是异步的.

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

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

现在我想:

$('#category option[value="1"]').attr('selected', 'selected');
Run Code Online (Sandbox Code Playgroud)

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

我想知道等待直到追加的脚本是否完成,并且一个接一个地写两条线或者是否需要在第一条线上放置一些回调函数以便第二条线在追加完成后执行?

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

或者只是ajax调用asynchronius?这是一个显而易见的初学者,但没有好的关键词,我可以找到这个基本的东西,所以我在这里问.

Thi*_*ter 5

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

所以你可以安全地假设你的第一行已经执行了第二行.

确定某人是否异步执行的一种好方法是检查是否传递了回调函数.如果你这样做并且它的执行时间取决于外部因素(网络速度),或者需要一些时间来执行(例如,淡化元素),那么异步执行它的可能性很大.但是,$.each即使它与回调函数一起工作,也会同步运行.但是在这种情况下,执行在人为减慢或依赖于外部因素的情况下没有任何意义,因此没有理由将其异步化.