js 파일을 비동기 적으로로드하는 데 약간 다른 구문이있는 것으로 보였습니다. 두 파일 사이에 차이가 있는지 궁금 해서요. 저는 그것들이 똑같이 작동한다고 추측하고 있지만, 어떤 이유로 하나의 방법이 다른 것보다 좋지 않은지 확인하기를 원했습니다. :)비동기 .js 파일 로딩 구문
방법 1
나는 페이스 북 방법에s.async=true;
예고
(function() {
var d=document,
h=d.getElementsByTagName('head')[0],
s=d.createElement('script');
s.type='text/javascript';
s.src='/js/myfile.js';
h.appendChild(s);
})(); /* note ending parenthesis and curly brace */
방법 두 (페이스 북의 코드에서 톱이)
(function() {
var d=document,
h=d.getElementsByTagName('head')[0],
s=d.createElement('script');
s.type='text/javascript';
s.async=true;
s.src='/js/myfile.js';
h.appendChild(s);
}()); /* note ending parenthesis and curly brace */
, 감사합니다. 스크립트가 head 태그에 삽입 되었기 때문에 s.asynch = true가이 경우에는 무의미하지 않습니까? 그리고 괄호의 구문까지 : (function() {...})(); vs : (function() {...}()); - 그것들은 거의 같은가요? – taber
@taber : 예 괄호 구문이 동일한 목표를 달성합니다. ie : 함수는 함수 명령문 대신 함수 표현식으로 평가됩니다. 참조 : http://stackoverflow.com/questions/440739/what-do-parentheses-surrounding-a-javascript-objectfunctionclass-declaration/442408#442408 및 http://stackoverflow.com/questions/1634268/explain-javascripts- 캡슐화 된 익명 함수 구문/1634321 # 1634321 (특히 마지막 주석). –
@ taber : 나는 그것이 '
'에 삽입되어 있다는 사실이 어떤 차이가 있다고 생각하지 않습니다. (그러나 나는 이것을 뒷받침 할 참조 나 테스트가 없다). –