은 DOM이 준비가되면 jQuery의이
$(function() { ... })
실행되는 기능을 추가하기 위해 사용하는 2 또는 3 또는 20 문이있는 경우, 모든 기능을 병렬로 실행하거나 순차적으로 실행됩니다?
은 DOM이 준비가되면 jQuery의이
$(function() { ... })
실행되는 기능을 추가하기 위해 사용하는 2 또는 3 또는 20 문이있는 경우, 모든 기능을 병렬로 실행하거나 순차적으로 실행됩니다?
document.ready
동작합니다을보고 불을 지르고에서 중단 점을 넣을 수 있습니다, 그들은 바인딩 된 순서의 순서와 에 발생합니다. 당신은 the relevant jQuery core source here을 볼 수
이것은 당신이 $(function)
할 때 발생하는 것입니다 :
ready: function(fn) {
jQuery.bindReady();
if (jQuery.isReady) {
fn.call(document, jQuery);
} else if (readyList) {
readyList.push(fn);
}
return this;
}
을 그리고이 나중에 발생, 때 "준비"이벤트가 발생합니다 :
if (readyList) {
var fn, i = 0;
while ((fn = readyList[ i++ ])) {
fn.call(document, jQuery);
}
readyList = null;
}
만약 문서의 이미 준비가되면 함수가 즉시 실행됩니다. 위의 첫 번째 코드 블록에있는 부분은 if
입니다.
순차적으로 실행됩니다. 이 동작이 점에서 일반 이벤트와 같은
중단 점을 사용하는 것이 결정적인 테스트라고 생각하지 않습니다. 예를 들어 Java를 사용하여 Eclipse에서 여러 스레드에 대한 중단 점을 넣을 수 있으며 디버거는 각 중단 점에서 중지됩니다. 구별되는 요소는 현재 실행중인 스레드가 나열되어 있다는 것입니다. 그렇지 않은 경우 코드가 스레드 방식으로 실행되는 경우 쉽게 알 수 없습니다. 위의 코드를 기반으로 – Anurag
순서대로 실행됩니다. Javascript 코드가 병렬로 실행되지 않습니다.
이 경우 사실이지만 담요 성명서로는 전적으로 사실이 아닙니다. [bobince] (http://stackoverflow.com/users/18936/bobince)) 여기에 예외에 대한 위대한 글을 했어 : http://stackoverflow.com/questions/2734025/is-javascript-guaranteed-to-be-single-threaded –
@ 닉 : 실행 사건이 더 많은 것처럼 보입니다. 실제로 병렬로 실행되는 것보다 – Guffa
자바 스크립트 코드가 병렬로 실행되지 않습니까? 'setInterval()'이 0.1 초마다 하나 있고, 또 다른 것이 0.11 초일 때, 어떤 시점에서 2 개의 함수가 병렬로 실행되지 않을까요? (2 스레드처럼) –
문서가 준비되면 더 이상 큐의 끝에 추가 할 수없는 것처럼 보입니다. 새로운 모든 준비된 핸들러는 즉시 실행됩니다. 즉, post-ready 바인드가 바로 실행되기 때문에 바인드 순서가 아닙니다. –
@Sean - 여전히 주문 상태 임 :) –