js加载之使用DOM方法动态加载Javascript文件
2013-11-08 11:50
881 查看
传统上,加载Javascript文件都是使用<script>标签。
就像下面这样:
<script type="text/javascript" src="example.js"></script>
<script>标签很方便,只要加入网页,浏览器就会读取并运行。但是,它存在一些严重的缺陷。
(1)严格的读取顺序。由于浏览器按照<script>在网页中出现的顺序,读取Javascript文件,然后立即运行,导致在多个文件互相依赖的情况下,依赖性最小的文件必须放在最前面,依赖性最大的文件必须放在最后面,否则代码会报错。
(2)性能问题。浏览器采用"同步模式"加载<script>标签,也就是说,页面会"堵塞"(blocking),等待javascript文件加载完成,然后再运行后面的HTML代码。当存在多个<script>标签时,浏览器无法同时读取,必须读取完一个再去读取另一个,造成读取时间大大延长,页面响应缓慢。
为了解决这些问题,可以使用DOM方法,动态加载Javascript文件。
复制代码 代码如下:
function loadScript(url){
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
document.body.appendChild(script);
}
这样做的原理是,浏览器即时创造出一个<script>标签,然后"异步"读取Javascript文件。这样不会造成页面堵塞,但会造成另外一个问题:这样加载的Javascript文件,不在原始的DOM结构之中,因此在DOM-ready(DOMContentLoaded)事件和window.onload事件中指定的回调函数对它无效。
就像下面这样:
<script type="text/javascript" src="example.js"></script>
<script>标签很方便,只要加入网页,浏览器就会读取并运行。但是,它存在一些严重的缺陷。
(1)严格的读取顺序。由于浏览器按照<script>在网页中出现的顺序,读取Javascript文件,然后立即运行,导致在多个文件互相依赖的情况下,依赖性最小的文件必须放在最前面,依赖性最大的文件必须放在最后面,否则代码会报错。
(2)性能问题。浏览器采用"同步模式"加载<script>标签,也就是说,页面会"堵塞"(blocking),等待javascript文件加载完成,然后再运行后面的HTML代码。当存在多个<script>标签时,浏览器无法同时读取,必须读取完一个再去读取另一个,造成读取时间大大延长,页面响应缓慢。
为了解决这些问题,可以使用DOM方法,动态加载Javascript文件。
复制代码 代码如下:
function loadScript(url){
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
document.body.appendChild(script);
}
这样做的原理是,浏览器即时创造出一个<script>标签,然后"异步"读取Javascript文件。这样不会造成页面堵塞,但会造成另外一个问题:这样加载的Javascript文件,不在原始的DOM结构之中,因此在DOM-ready(DOMContentLoaded)事件和window.onload事件中指定的回调函数对它无效。
您可能感兴趣的文章:
相关文章推荐
- js加载之使用DOM方法动态加载Javascript文件
- 使用jQuery动态加载js脚本文件的方法
- 使用js加载器动态加载外部Javascript文件
- 使用jQuery动态加载js脚本文件的方法
- 使用javaScript动态加载Js文件和Css文件
- 使用javascript动态加载外部css或js文件
- 使用jquery动态加载js文件的方法
- 如何动态加载js文件,$.getScript()方法的使用
- 使用javaScript动态加载Js文件和Css文件
- 使用js加载器动态加载外部Javascript文件
- 使用js加载器动态加载外部Javascript文件
- JavaScript学习总结(十九)——使用js加载器动态加载外部Javascript文件
- 使用js加载器动态加载外部Javascript文件
- 使用jquery动态加载js文件的方法
- 使用jQuery动态加载js脚本文件的方法
- javascript中采用jQuery ajax动态加载js文件的解决方法
- 使用jQuery动态加载js脚本文件的方法
- asp.net在使用母版页的内容页面中动态加载css和js文件的方法