2012-12-19 4 views
0

문서가 준비되고 모든 스크립트로드가 완료되면 일부 코드를 실행하려고합니다. 나는 스크립트를로드 할 head.js를 사용

$(document).ready(function() { 
    head.js("script1.js", "script2.js", function() { 
     // code to execute 
    }); 
}); 

그 일을이 방법으로 스크립트가 $에 대한 (문서) .ready() 대기로드하기 시작합니다. 성능 저하를 피하기 위해 가능한 한 빨리 스크립트를로드하는 것이 더 나을 것 같습니다.

코드 블록을 실행하기 전에 문서와 스크립트가 완전히로드되었는지 확인하는 더 좋은 방법이 있습니까? 상기 및 기타 모든 스크립트의 .ready() 코드를 사용자의 $ (문서)를 넣어

$(window).load(function() { 
    head.js("script1.js", "script2.js", function() { 
    // code to execute 
    }); 
}); 

답변

1

코드를 바꿔 쓰는 것이 좋습니다.

head.js("script1.js", "script2.js", function() { 
    $(document).ready(function() { 
     // code to execute 
    }); 
}); 

스크립트가 즉시로드되기 시작한 다음 스크립트가 완료되면 문서 준비가 완료 될 때까지 기다린 후 실행을 시작합니다.

스크립트를 닫는 body 태그 앞에 놓고 domready 핸들러를 모두 제거한 경우 더 좋을 것입니다.

+0

head.js doc은 "$ ready()와 같은"DOM 준비 "이벤트가 이미 스크립트 도착했다 ", 그래서 그것은 이미 해고되었을지도 모르는가? – dougmacklin

+0

@DougieBear 가능하다하더라도 내부에있는 domready 핸들러는 여전히 실행되지만, 그렇다고해도 불필요 할 것입니다. –

+0

그래서 그 경우 코드를 실행하거나 .ready 이벤트를 발생시키지 않겠습니까? – dougmacklin

0

그런 다음 모든 것을 실행 첫째 모든로드 .load을 사용할 수 있습니다

+0

jquery로 수정할 수 있도록 문서의 모든 요소를로드해야합니다 – dougmacklin

0

! :

+0

head.ready()의 포인트는 다른 (세 번째 부분) 스크립트의 리소스를 사용하여 개별적으로 수정하지 않는 것입니다 – dougmacklin

+0

좋습니다. 좋은 지적입니다. 난 최선의 해결책은 Kevin B – algorhythm

+0

에서 온 것 같아요. 페이지 끝 부분에'$ (document) .ready()'를두면'$ (document) .ready()'가 필요 없습니다. –

0

길을 너무 복잡하게 만들고 있습니다. 문서가 처음로드하려면, 다음 스크립트를로드 한 다음 바로이 같은 </body> 전에 문서의 끝에 몇 가지 코드, 그럼 그냥 넣어 스크립트 태그를 실행할 수 있습니다

<head> 
</head> 
<body> 

Your regular HTML content here 
<script src="script1.js"></script> 
<script src="script2.js"></script> 
<script> 
// Put code here that you want to execute when document and scripts are ready 
</script> 
</body> 

당신은하지 않습니다 설명 된 간단한 원인에 대한 콜백 동적로드가 필요합니다.

+0

Drupal의 노드 내에서 작업 할 때 불행히도이 작업을 수행 할 수 없습니다. body 태그는 내가 수정할 수있는 범위를 벗어납니다. 나는 문서 내의 내부 div에만 코드를 추가 할 수 있습니다 – dougmacklin

+0

아마 당신은 그 질문에 언급 했어야합니다. – jfriend00

+0

나는 특정 문제를 복잡하게 다루지 않고 질문을 단순화하고 일반화하려고 노력합니다. 이것을 염두에두고 @ KevinB의 해결책에 동의합니까? – dougmacklin