2014-11-21 3 views
1

Joomla 템플릿의 일부 js 파일 로딩을 연기합니다. 이것은 내가 같은로드 다스의 js 파일에 대한이 있고 각각에 대해 난 그냥 pathto.js는 다른 존재로 위와 동일한 코드 블록을 사용하는 데,JSL로드 지연을위한 자바 스크립트

<script type="text/javascript"> 
     function downloadJSAtOnload() { 
      var element = document.createElement("script"); 
      element.src = "/pathto.js"; 
      document.body.appendChild(element); 
     } 
     if (window.addEventListener) 
      window.addEventListener("load", downloadJSAtOnload, false); 
     else if (window.attachEvent) 
      window.attachEvent("onload", downloadJSAtOnload); 
     else window.onload = downloadJSAtOnload; 
    </script> 

그러나 잘 작동합니다.

내 Javascript 능력은 매우 쓰다. 모든 js 파일을 배열에 넣은 다음 동일한 블록을 반복해서 반복하지 않고 동일한 블록을 사용하여 하나씩 차례로 살펴볼 수 있습니까?

내가 원하는 것은이 어떤 도움을

같은 것이
<script type="text/javascript"> 
     function downloadJSAtOnload() { 
      var element = document.createElement("script"); 
      element.src = AN ARRAY OF JS FILES; 
      document.body.appendChild(element); 
     } 
     FOR EACH ITEM IN THE ARRAY 
      if (window.addEventListener) 
       window.addEventListener("load", downloadJSAtOnload, false); 
      else if (window.attachEvent) 
       window.attachEvent("onload", downloadJSAtOnload); 
      else window.onload = downloadJSAtOnload; 
    </script> 

감사합니다!

+0

당신은 Mootools의-더에서 Assets.js을 사용해야합니다 - http://mootools.net/more/docs/1.5. 1/Utilities/Assets을 사용하면 여러 번 사용할 수 있습니다. http://stackoverflow.com/questions/8665217/mootools-help-loading-multiple-per-page-asset-javascript-files - 또는 더 나은 아직 사용 requireJS와 같은 실제 로더 : –

+0

더 최신 날짜. http://jsfiddle.net/fc3c0u9v/ - 이것이 순차 로딩이라는 것을 명심하십시오, 만약 1 개의 dep가 실패하면 chain은 실패하고'onComplete'는 호출하지 않을 것입니다. –

+0

Dimitar에게 감사드립니다. 마지막 하나가 효과가있는 것으로 보입니다. 순차적 인 것이 아닌 비동기 적재가 가능합니까? – arathra

답변

0

실제로 루프가 기능에 있어야합니다.

여기에 (내가 그것을 테스트하지 않았습니다) 기능이 있어야 할 내용은 다음과 같습니다

function downloadJSAtOnload() { 
    var scripts = ["script1.js", "script2.js", "script3.js"]; 
    for (i = 0; i < scripts.length; i++) { 
     var element = document.createElement("script"); 
     element.src = scripts[i]; 
     document.body.appendChild(element); 
    } 
} 
+0

필요한 것은 있지만 유감스럽게도 작동하지 않습니다. – arathra

관련 문제