5
JS는 코드를 실행하기 전에 함수의 사전 컴파일을 수행한다는 것을 알고 있습니다. 따라서 함수 순서는 중요하지 않습니다. 그러나 * .js 파일을 연결할 때 함수 순서가 문제가됩니다. 예를 들어언제 기능 순서가 중요합니까?
위 코드에서
<script src="@Url.Content("~/Scripts/Personal/MyJScript.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
hello();
afterCall();
hello2(); //fails, defined in MyJScript2.js
});
function afterCall() {
alert('inline function defined after call');
}
</script>
<script src="@Url.Content("~/Scripts/Personal/MyJScript2.js")" type="text/javascript"></script>
는 hello2()
기능은 통화가 정의 된 후에 링크 된 파일에 정의되어있다. 호출이 실패합니다. 그래서 직관적으로 지금 함수 순서 이과 일치합니까?
$(document).ready
을 수행한다고 생각하면 문서는 준비 될 때와 같아야합니다. 그래서, 왜 이런 일이 생길까요? 요청으로
, 여기에 몸에
<body>
<script src="/Scripts/Personal/MyJScript.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
hello();
afterCall();
hello2(); //fails
});
function afterCall() {
alert('inline function defined after call');
}
</script>
<script src="/Scripts/Personal/MyJScript2.js" type="text/javascript"></script>
</body>
어디 전체 HTML에서 할 그 '
스크립트 태그 가능성이 실행 (또는 되려고 노력) 외부 JS 파일에 대한 추가 요청이 완료되기 전에됩니다 클라이언트 측 HTML입니다.
로드 순서 및 타이밍보다 기능 선언 순서가 덜 중요합니다.
출처
2011-11-16 20:16:28
대신 MyJscript2을 가져올 스크립트 태그를 사용하여, 당신은 스크립트를 잡고 성공 콜백에서 일부 기능을 실행하기 위해 getScript을 사용할 수 있습니다.
출처
2011-11-16 20:50:02 jbabey