.hide("slow") 是同步方法还是异步方法?
.hide("slow") is synchronous or Asynchronous method?
我们知道 $.ajax()
是一个异步方法,因为下一条语句在 ajax()
方法完全执行之前开始执行并且 'ajax()' 继续并行地做他的事情,并且 hide()
是一个同步方法,因为它会立即隐藏元素,下一条语句将在 hide()
真正完成他的整个任务时执行,但我在 hide("slow")
的情况下真的很困惑。似乎是异步的,但我读过,它在浏览器中设置了计时器,并且一切都自动发生(现在 hide("slow")
没有并行执行任何操作)所以在某种程度上,它在下一条语句开始执行之前也已经完成了它的全部任务,所以hide("slow")
似乎也是一种同步方法,
我对同步异步这个概念很困惑
谁能帮我理解这个概念?
.hide(“slow”) is synchronous or Asyncronous method
对方法的调用是同步的,但它启动了一个异步过程。所以我们通常会松散地称它为 "asynchronous method"(在这种情况下,你给它一个持续时间参数)。
当你调用hide("slow")
时,你同步告诉jQuery开始随着时间的推移慢慢隐藏元素的过程。在对 hide
的初始调用完成后,实际执行此操作的过程是异步发生的。 (ajax
也是如此:方法本身是同步的,但它启动的过程——执行 XMLHttpRequest——异步继续。)
通常如果方法的工作在调用期间完成,我们称它为同步方法,但如果它只开始 稍后完成的工作,我们称之为异步方法。从技术上讲,该方法本身不是异步的,只是它启动的整个过程,但是...
当然,hide
本身既是同步方法又是异步方法,具体取决于您传递给它的参数:如果您调用它时没有持续时间 (.hide()
),它就是同步的;如果你用持续时间调用它(.hide("slow")
,.hide(400)
),它是异步的。
另外,对于你的另一个问题,
I am very confused about this Synchronous Asynchronous concept Can
someone help me to understand this concept ?
当您调试一行代码并且该行直到执行完成才传递到下一行时,它的同步操作是因为同一线程正在执行代码的完整执行。
另一方面,如果调试在实际操作完成之前传递到下一行,那么它是异步操作,因为在你上面的问题中,隐藏和动画是在不同线程的后台执行的,而主线程开始执行下一行。
希望它能澄清你上面的问题。
我们知道 $.ajax()
是一个异步方法,因为下一条语句在 ajax()
方法完全执行之前开始执行并且 'ajax()' 继续并行地做他的事情,并且 hide()
是一个同步方法,因为它会立即隐藏元素,下一条语句将在 hide()
真正完成他的整个任务时执行,但我在 hide("slow")
的情况下真的很困惑。似乎是异步的,但我读过,它在浏览器中设置了计时器,并且一切都自动发生(现在 hide("slow")
没有并行执行任何操作)所以在某种程度上,它在下一条语句开始执行之前也已经完成了它的全部任务,所以hide("slow")
似乎也是一种同步方法,
我对同步异步这个概念很困惑
谁能帮我理解这个概念?
.hide(“slow”) is synchronous or Asyncronous method
对方法的调用是同步的,但它启动了一个异步过程。所以我们通常会松散地称它为 "asynchronous method"(在这种情况下,你给它一个持续时间参数)。
当你调用hide("slow")
时,你同步告诉jQuery开始随着时间的推移慢慢隐藏元素的过程。在对 hide
的初始调用完成后,实际执行此操作的过程是异步发生的。 (ajax
也是如此:方法本身是同步的,但它启动的过程——执行 XMLHttpRequest——异步继续。)
通常如果方法的工作在调用期间完成,我们称它为同步方法,但如果它只开始 稍后完成的工作,我们称之为异步方法。从技术上讲,该方法本身不是异步的,只是它启动的整个过程,但是...
当然,hide
本身既是同步方法又是异步方法,具体取决于您传递给它的参数:如果您调用它时没有持续时间 (.hide()
),它就是同步的;如果你用持续时间调用它(.hide("slow")
,.hide(400)
),它是异步的。
另外,对于你的另一个问题,
I am very confused about this Synchronous Asynchronous concept Can someone help me to understand this concept ?
当您调试一行代码并且该行直到执行完成才传递到下一行时,它的同步操作是因为同一线程正在执行代码的完整执行。
另一方面,如果调试在实际操作完成之前传递到下一行,那么它是异步操作,因为在你上面的问题中,隐藏和动画是在不同线程的后台执行的,而主线程开始执行下一行。
希望它能澄清你上面的问题。