据我们所知$.ajax()
是一个异步方法,因为下一个语句之前开始执行ajax()
方法已完全执行,“ajax()”继续并行执行其工作,并且hide()
是一个同步方法,因为它立即隐藏元素,并且下一条语句将在何时执行hide()
确实完成了他的全部任务,但我真的很困惑hide("slow")
。它看起来是异步的,但我读到,它在浏览器中设置计时器,一切都会自动发生(现在hide("slow")
并行不做任何事情)所以在某种程度上,在下一条语句开始执行之前它也已经完成了整个任务,所以hide("slow")
似乎也是一种同步方法,
我对同步异步的概念很困惑
有人可以帮助我理解这个概念吗?
.hide(“slow”) 是同步或异步方法
The call该方法是同步的,但它启动了一个异步过程。因此,我们通常会宽松地称其为“异步方法”(在本例中,您为其提供持续时间参数)。
你打电话时hide("slow")
,你同步告诉 jQuerystart随着时间的推移慢慢隐藏元素的过程。在初始调用之后,实际执行此操作的过程是异步发生的hide
做完了。 (这也适用于ajax
:该方法本身是同步的,但它启动的过程(执行 XMLHttpRequest)以异步方式继续。)
通常,如果该方法的工作完成during对它的调用,我们称其为同步方法,但如果它只是starts稍后完成的工作,我们称之为异步方法。从技术上讲,该方法本身不是异步的,只是它启动的整个过程,但是......
hide http://api.jquery.com/hide当然,它本身既是同步方法又是异步方法,具体取决于您传递的参数:如果您在没有持续时间的情况下调用它(.hide()
),是同步的;如果你用持续时间来调用它(.hide("slow")
, .hide(400)
),它是异步的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)