programing

javascript code 실행 전에 javascript 파일이 모두 로딩될 때까지 기다리는 것이 가능합니까?

javamemo 2023. 11. 6. 21:35
반응형

javascript code 실행 전에 javascript 파일이 모두 로딩될 때까지 기다리는 것이 가능합니까?

우리는 마스터 페이지 하단에 로드되는 자바스크립트 파일이 몇 개 있습니다.하지만 다른 스크립트가 로딩되기 전에 자바스크립트를 수행해야 하는 상황이 생겼습니다.모든 자바스크립트 파일이 로드될 때까지 기다렸다가 일부 자바스크립트 코드를 실행할 수 있습니까?

내 생각에는 말이지…$(document).ready()이런 짓을 했지만, 알고 보니 그렇지 않아요.물론 스크립트 파일을 아래에서 위로 옮길 수는 있지만, 제가 원하는 것으로 가능한지 궁금합니다.

사용가능

$(window).on('load', function() {
    // your code here
});

페이지가 로드될 때까지 기다립니다.$(document).ready()DOM이 로드될 때까지 기다립니다.

일반 JS:

window.addEventListener('load', function() {
    // your code here
})

코드가 로드된 후에 코드를 사용하고 실행할 수 있습니다.

 $.getScript("my_lovely_script.js", function(){

    alert("Script loaded and executed.");
    // here you can use anything you defined in the loaded script

 });

더 나은 설명은 여기에서 확인할 수 있습니다.다른 자바스크립트 파일에 자바스크립트 파일을 포함하려면 어떻게 해야 합니까?

사용가능<script>defer기여하다.페이지 파싱이 완료되면 스크립트가 실행되도록 지정합니다.

<script defer src="path/to/yourscript.js">

이것에 관한 멋진 기사: http://davidwalsh.name/script-defer

브라우저 지원은 꽤 괜찮은 것 같습니다. http://caniuse.com/ #search=

지연 및 비동기를 사용하여 JS를 로드하는 것에 대한 또 다른 좋은 기사: https://flaviocopes.com/javascript-async-defer/

@Eruant의 답변을 좀 더 확대해서 보면,

$(window).on('load', function() {
    // your code here
});

두 가지 모두에 매우 적합합니다.async그리고.defer스크립트를 로드하는 동안.

따라서 다음과 같은 모든 스크립트를 가져올 수 있습니다.

<script src="/js/script1.js" async defer></script>
<script src="/js/script2.js" async defer></script>
<script src="/js/script3.js" async defer></script>

꼭 확인해 주세요.script1함수를 호출하지 않습니다.script3전에$(window).on('load' ..., 그들을 꼭 안으로 불러들입니다.window load이벤트성의

비동기/지연기에 대한 자세한 내용은 여기에 있습니다.

저한테는 잘 맞는군요.

var jsScripts = [];

jsScripts.push("/js/script1.js" );
jsScripts.push("/js/script2.js" );
jsScripts.push("/js/script3.js" );

$(jsScripts).each(function( index, value ) {
    $.holdReady( true );
    $.getScript( value ).done(function(script, status) {
        console.log('Loaded ' + index + ' : ' + value + ' (' + status + ')');                
        $.holdReady( false );
    });
});

언급URL : https://stackoverflow.com/questions/11258068/is-it-possible-to-wait-until-all-javascript-files-are-loaded-before-executing-ja

반응형