beg*_*ner -1 javascript jquery asynchronous synchronous
我们知道$.ajax()这是一个异步方法,beacuse next语句在ajax()方法完全执行之前开始执行,'ajax()'继续并行执行他的东西,并且hide()是一个Synchronous方法,因为它会立即隐藏元素,而下一个语句将在hide()真正完成时执行他的整个任务,但我真的很困惑hide("slow").它看起来像异步,但我读过,它在浏览器中设置了计时器,一切都自动发生(现在hide("slow")没有任何并行),所以在某种程度上,它也在下一个语句开始执行之前完成了它的整个任务,所以 hide("slow")似乎也是同步方法,
我对这种同步异步概念非常困惑
有人能帮我理解这个概念吗?
.hide("慢")是同步或异步方法
对方法的调用是同步的,但它启动异步过程.所以我们通常会松散地称它为"异步方法"(在这种情况下,你给它一个持续时间参数).
当你调用时hide("slow"),你同步告诉jQuery 开始随着时间的推移慢慢隐藏元素的过程.实际执行该操作的过程在初始调用hide完成后异步进行.(这也是如此ajax:方法本身是同步的,但它启动的过程 - 执行XMLHttpRequest - 以异步方式继续.)
通常,如果方法的工作在调用期间完成,我们称之为同步方法,但如果它只启动稍后完成的工作,我们称之为异步方法.从技术上讲,方法本身不是异步的,只是它启动的整个过程,但......
hide当然,它本身是一个同步和异步方法,取决于你传递的参数:如果你没有持续时间(.hide())调用它,它是同步的; 如果你用持续时间(.hide("slow"),.hide(400))来调用它,它就是异步的.