页面加载外部文件往往都是异步加载,当外部文件关联引用的时候就会出现问题,因此需要我们手动处理这种动态的引用关系。
结合实际情况引用的一个百度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"); }); });
新闻热点
疑难解答