우리가 아는 것처럼 $.ajax()
Is a asynchronous method, beacuse next statement starts running before ajax()
method is fully execution and 'ajax ()'keep doing his stuff doing its parallelly, And hide()
is a Synchronous method, because it immediately hide the element and next statement will execute when hide()
real done 그의 모든 작업, 그러나 나는 hide("slow")
. 비동기식으로 보이지만 읽었습니다. 브라우저에서 타이머를 설정하고 모든 것이 자동으로 발생합니다 (지금 hide("slow")
은 병렬로 아무것도하지 않습니다). 그래서 다음 문이 실행되기 전에 전체 작업도 완료되었습니다 hide("slow")
. 동 기적 방법으로 보입니다. ,
이 동기 비동기 개념에 대해 매우 혼란 스럽습니다.
누군가가이 개념을 이해하도록 도울 수 있습니까?
.hide ( "slow")는 동기 또는 비동기 메서드입니다.
호출 방법과 동기이지만, 비동기 처리를 시작한다. 따라서 일반적으로 느슨하게 "비동기 메서드"라고 부릅니다 (이 경우에는 기간 인수를 제공합니다).
을 호출하면 시간이 지남에 따라 천천히 요소를 숨기는 프로세스 hide("slow")
를 시작 하도록 jQuery에 동기식으로 알립니다 . 실제로 수행하는 프로세스는에 대한 초기 호출 hide
이 완료된 후 비동기 적으로 발생합니다 . (이것은 다음에도 해당됩니다 ajax
. 메서드 자체는 동 기적이지만 시작되는 프로세스 (XMLHttpRequest 수행)는 비동기 적으로 계속됩니다.
일반적으로 메서드를 호출하는 동안 메서드 작업이 완료되면 이를 동기 메서드라고 부르지 만 나중에 완료되는 작업 만 시작하는 경우이를 비동기 메서드라고합니다. 기술적으로 메서드 자체는 비동기식이 아니라 시작하는 전체 프로세스 일뿐입니다.
hide
물론 그 자체는 전달하는 인수에 따라 동기식 및 비동기식 메서드입니다. 기간 ( .hide()
) 없이 호출하면 동기식입니다. 기간 ( .hide("slow")
, .hide(400)
)으로 호출하면 비동기식입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다