关于动态加载js
2015-01-01 00:34
141 查看
已知一个需要动态加载的js的文件路径数组,动态加载数组里面所有的js文件。
加载分两种情况:
1. 并行加载,不管js的执行顺序。
2. 串行加载,即一个一个加载,上一个加载完再加载下一个,直到最后。
动态加载js一般都是动态创建一个script,
解决第一种情况:
解决第二种情况:
第一种情况用法非常简单就不说了。
第二种用法其实也不难:
假设:scripts数组:['a.js','b.js','c.js']
上面的两种方法其实也适用于加载css文件。
加载分两种情况:
1. 并行加载,不管js的执行顺序。
2. 串行加载,即一个一个加载,上一个加载完再加载下一个,直到最后。
动态加载js一般都是动态创建一个script,
解决第一种情况:
function loadExternalFile(src,parentElement,tagName){ var elem = document.createElement(tagName); if(tagName==='link'){ elem.setAttribute('href',src); elem.setAttribute('rel','stylesheet'); }else if(tagName==='script'){ elem.setAttribute('src',src); elem.setAttribute('type','text/javascript'); } parentElement.appendChild(elem); }
解决第二种情况:
function loadScript(url, parentEle, tagName, callback){ var ele = document.createElement(tagName); var typeProp = tagName==='script'?'type':'rel'; ele[typeProp] = tagName==='script'?'text/javascript':'stylesheet'; if (ele.readyState){ //IE ele.onreadystatechange = function(){ if (ele.readyState == "loaded" || ele.readyState == "complete"){ ele.onreadystatechange = null; callback(); } }; } else { //Others ele.onload = function(){ callback(); }; } typeProp = tagName==='script'?'src':'href'; ele[typeProp] = url; parentEle.appendChild(ele); }
第一种情况用法非常简单就不说了。
第二种用法其实也不难:
假设:scripts数组:['a.js','b.js','c.js']
var i=0; var n=scripts.length; loadScript(scripts[i],parentEle,'script',loadScriptComplete); function loadScriptComplete(){ i++; if(i<n){ loadScript(scripts[i],parentEle,'script',loadScriptComplete); } }
上面的两种方法其实也适用于加载css文件。
相关文章推荐
- 关于动态加载js
- 关于jQuery的getScript()实现动态js加载,原理,实现过程是怎么样的?
- 关于动态加载外部js的执行顺序
- 关于动态加载js脚本的话题
- 2011-02-16 YUI.use()的学习,关于动态加载js页面的启示(2011淘宝首页有感)
- 关于JS中如何获取动态加载的对象小结
- 关于用jquery.masonry.js实现动态加载效果(当页面滚动条拉到底部时时重新加载图片)
- 关于JQUERY动态加载页面时的JS失效的问题
- extjs 关于js的动态加载问题
- 关于Assembly的动态加载
- 网页中动态加载js文件
- 读GI源码、学JS编程——Javascript动态加载技术。
- 关于动态加载布局的想法(初学)
- 动态加载JS脚本的4种方法[转自http://hi.baidu.com/ajax] http://www.cnitblog.com/yemoo/archive/2007/07/19/30222.html
- 动态加载JS
- 关于C#中PictureBox加载动态GIF所出现的BUG以及解决方法
- 向页面动态加载JS文件的的一个小技巧
- 动态加载JS
- 动态加载js和css