2015-11-30 56 views
0

1'm想某一天晚上我安裝應用程序之前,注入到多個依賴的製造,但它掛起/崩潰。注入依賴做......而

function injectSingle (file, done) { 
    var source; 

    switch (file.type) { 
     case 'js': 
      source = document.createElement('script'); 
      source.src = file.src; 
      source.async = true; 
      break; 

     case 'css': 
      source = document.createElement('link'); 
      source.href = file.src; 
      source.type = 'text/css'; 
      source.rel = 'stylesheet'; 
      break; 
    } 

    if (source.readyState) { // IE 
     source.onreadystatechange = function() { 
      if (source.readyState == "loaded" || source.readyState == "complete"){ 
       source.onreadystatechange = null; 
       done(); 
      } 
     }; 
    } else { // Standard 
     source.onload = function() { 
      done(); 
     }; 
    } 

    document.getElementsByTagName('head')[0].appendChild(source); 
} 

function injectDependencies (files, launch) { 
    var ready = 0; 
    do { 
     injectSingle(files[ready], function() { 
      ready++; 
      console.log('Ready Count: %s', ready); 
     }); 
    } while (ready < files.length - 1); 
    launch(); 
} 

(function() { 
    injectDependencies([ 
     { 
      src: '//example.com/dep.min.js', 
      type: 'js' 
     }, 
     { 
      src: '//example.com/dep.2.js', 
      type: 'js' 
     }, 
     { 
      src: '//example.com/dep.css', 
      type: 'css' 
     }, 
    ], function() { 
     React.render(<Application/>, document.getElementById('someId')); 
    }) 
}) 

請忽略此位,爲1個需要填補該職位有更多的文本。

Lorem存有胡蘿蔔,增強回扣,但他們occaecat時間和活力,如勞動力和肥胖。多年來,我會來的,誰將會nostrud aliquip了她鍛鍊的優勢,使刺激措施,如果學區和長壽。想成爲在cupidatat cillum疼痛已經在DUIS等dolore麥格納被批評逃離產生任何結果的樂趣。 Excepteur cupidatat黑人就不是excepteur,舒緩心靈,那就是,他們拋棄了那些誰是責怪你的煩惱的一般責任。

回答

0

injectDependencies 1是能夠通過改變功能這一來完成它:

function injectDependencies (files, launch) { 
    var script, ready = 0, total = files.length; 

    while (script = files.shift()) { 
     injectSingle(script, function() { 
      ready++; 
      if (ready == total) launch(); 
     }); 
    } 
}