頁面加載外部文件往往都是異步加載,當外部文件關聯引用的時候就會出現問題,因此需要我們手動處理這種動態的引用關系。
結合實際情況引用的一個百度echarts示例來說明這種情況:
baidu_echarts.js通常會比我們普通引用的自定義js文件大好幾個數據量級,但是為了實現baiduecharts的效果我們需要在自定義文件中實現引用,當出現網絡延遲等情況的時候,可能會出現無法加載的情況(此時沒有任何錯誤,因為有線程正在努力加載),因此我們必須人為的去處理這種關聯關系。
function loadScript(url, callback){ var script = document.createElement("script") script.type = "text/javascript"; if (script.readyState){ //IE script.onreadystatechange = function(){ if (script.readyState == "loaded" || script.readyState == "complete"){ script.onreadystatechange = null; callback(); } }; } else { //Others script.onload = function(){ callback(); }; } script.src = url; document.getElementsByTagName("head")[0].appendChild(script); } loadScript("$!{gsc.context}/webpage/etrade/pages/accountinfo/echarts.js", function(){ loadScript("$!{gsc.context}/webpage/etrade/pages/accountinfo/accountinfo.js", function(){ console.log(">>>>>do"); }); });
新聞熱點
疑難解答