2017-01-02 1 views
0

문서가 완전히로드되면 자바 스크립트가 img 소스 및 배경 이미지와 같은 항목을 변경하기 시작합니다. 이러한 변경 사항은 JS에서 미리로드하거나 예를 들어 src 특성을 직접 변경하여 다른 방식으로 발생합니다. 그러나 이러한 변경 사항의 경우 새 파일을로드해야합니다. 이러한 변경 사항은 무작위로 임의의 소스가 무작위로 발생하므로 요소 또는 소스 목록을 제공 할 수 없습니다.로딩 중 jQuery/javascript 확인 ​​

특정 순간에 내 자바 스크립트 (jQuery)는 아직로드중인 항목이 있는지 또는 모든 항목이 완전히로드되었는지 확인해야합니다.

즉, 네트워크 트래픽이 발생하는지 확인하는 방법이 필요합니다.

이상적으로는 파일을로드하라는 요청이있을 때마다 변수 loading을 true로 설정하고로드 프로세스가 완료되면 해당 변수를 false로 설정하여 이상이 생길 수 있습니다. while (loading==true) {loopscript()}처럼로드하는 동안 일부 스크립트를 반복하십시오.

이 작업을 수행 할 수있는 jQuery 방법이 있습니까?

답변

0

JQuery load 이벤트를 사용할 수 있지만 setInterval 호출이 헤드에 포함되어 있는지 확인해야합니다. 아래 예제는 이미지를로드 할 5000ms가 소요되는 페이지를로드하는 것입니다. 1000ms마다 콘솔로 출력됩니다.

<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 
    <script> 
 
    var intervalID = setInterval(function() { 
 
    console.log("loading"); 
 
    }, 1000); 
 
    </script> 
 
</head> 
 
<body> 
 
    <script> 
 
    jQuery(window).load(function() { 
 
    clearInterval(intervalID); 
 
    }); 
 
    </script> 
 
    <img src="http://deelay.me/5000/http://deelay.me/img/5000ms.gif"> 
 
</body>

+0

허 완료되면 다른 어떤 이벤트가 트리거 될 수 필요? – charlietfl

+0

이전에이 작업을 시도했지만 $ (window) .load (...)를 사용하면 문제가 해결되지 않는 것 같습니다. 이벤트는로드가 시작될 때마다 트리거하지 않습니다. 필요한 경우 필요합니다. 대신 윈도우가로드 될 때만 트리거되는 것처럼 보입니다. – eds1999

+0

@charlietfl 먼저 방법을 시도 했어야합니다. 테스트했지만 작동하지 않았습니다. 미안합니다. – volatilevar

0

당신은 $.Deferred를 사용하여 각 작업에 대한 약속을 만들고 배열에 대한 모든 약속을 밀어 수 있습니다.

그런 다음 모든 약속이 해결 된 후 $.when()을 사용하여로드 변수를 업데이트하십시오.

각 개인의 약속은 이미지를로드 이벤트 핸들러 내에서 해결 될 또는 해당 작업이