请给出异步加载js方案
2015-07-19 23:42
459 查看
请给出异步加载js方案,不少于两种
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。
异步加载方式:
(1) defer,只支持IE
(2) async:
(3) 创建script,插入到DOM中,加载完毕后callBack,见代码:
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: Firefox, Safari, Chrome, and Opera
script.onload = function(){
callback();
};
}
script.src = url;
document.body.appendChild(script);
}
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。
异步加载方式:
(1) defer,只支持IE
(2) async:
(3) 创建script,插入到DOM中,加载完毕后callBack,见代码:
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: Firefox, Safari, Chrome, and Opera
script.onload = function(){
callback();
};
}
script.src = url;
document.body.appendChild(script);
}
相关文章推荐
- JS DOM编程艺术——CSS-DOM—— JS学习笔记2015-7-19(第87天)
- JavaScript 三种创建对象的方法
- js 字符串获取对应的值
- js字符串对比的空格问题
- JSON格式使用方法
- [置顶] javascript正则表达式学习笔记之------正则表达式的创建和基本使用
- JavaScript权威指南_129_第15章_脚本化文档_15.6-创建、 插入、删除节点-插入节点
- js正则表达式实例(汇总)
- JavaScript权威指南_128_第15章_脚本化文档_15.6-创建、 插入、删除节点-创建节点
- JSON工具类
- JavaScript第一阶段总结
- 用D3.js进行医疗数据可视化 (一)折线图 (Line Chart)
- JavaScript的几种常见用法
- JSP之pageContext/Config/Exception对象
- Javascript学习笔记-定时器
- js 遍历json对象并为select赋值 (ajax返回的json对象)
- JavaScript
- Gson解析json
- js简单记录
- js正则验证两位小数 验证数字最简单正则表达式大全