点评js异步加载的4种方式
作者:bea
js异步加载的4种方式,点评开始。 方案1:$(document).ready <!DOCTYPE html><html> <head> <script src="http://common.cnblogs.com/script/jquery.js" type="text/javascript"></script> <script type="text/javascrip
js异步加载的4种方式,点评开始。
方案1:$(document).ready
<!DOCTYPE html>
<html>
<head>
<script src="http://common.cnblogs.com/script/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
alert("加载完成!");
});
</script>
</head>
<body>
<img src="http://images.cnitblog.com/i/121863/201405/222202573569862.jpg" />
</body>
</html>
点评:
1、需要引用jquery
2、兼容所有浏览器。
方案2:<script>标签的async="async"属性
async的定义和用法(是HTML5的属性)
async 属性规定一旦脚本可用,则会异步执行。
示例:
<script type="text/javascript" src="xxxxxxx.js" async="async"></script>
点评:
1、HTML5中新增的属性,Chrome、FF、IE9&IE9+均支持(IE6~8不支持)。此外,这种方法不能保证脚本按顺序执行。
2、async 属性仅适用于外部脚本(只有在使用 src 属性时)。
方案3:<script>标签的defer="defer"属性
defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。
有的 javascript 脚本 document.write 方法来创建当前的文档内容,其他脚本就不一定是了。
如果您的脚本不会改变文档的内容,可将 defer 属性加入到 <script> 标签中,以便加快处理文档的速度。因为浏览器知道它将能够安全地读取文档的剩余部分而不用执行脚本,它将推迟对脚本的解释,直到文档已经显示给用户为止。
示例:
<script type="text/javascript" defer="defer">
alert(document.getElementById("p1").firstChild.nodeValue);
</script>
点评:兼容所有浏览器。此外,这种方法可以确保所有设置defer属性的脚本按顺序执行。
方案4:动态创建<script>标签
示例:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
(function(){
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = "http://code.jquery.com/jquery-1.7.2.min.js";
var tmp = document.getElementsByTagName('script')[0];
tmp.parentNode.insertBefore(s, tmp);
})();
</script>
</head>
<body>
<img src="http://images.cnitblog.com/i/121863/201405/222202573569862.jpg" />
</body>
</html>
点评:兼容所有浏览器。
以上就是针对js异步加载的4种方式进行的区分介绍,希望对大家的学习js异步加载有所帮助。
有用 | 无用
方案1:$(document).ready
<!DOCTYPE html>
<html>
<head>
<script src="http://common.cnblogs.com/script/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
alert("加载完成!");
});
</script>
</head>
<body>
<img src="http://images.cnitblog.com/i/121863/201405/222202573569862.jpg" />
</body>
</html>
点评:
1、需要引用jquery
2、兼容所有浏览器。
方案2:<script>标签的async="async"属性
async的定义和用法(是HTML5的属性)
async 属性规定一旦脚本可用,则会异步执行。
示例:
<script type="text/javascript" src="xxxxxxx.js" async="async"></script>
点评:
1、HTML5中新增的属性,Chrome、FF、IE9&IE9+均支持(IE6~8不支持)。此外,这种方法不能保证脚本按顺序执行。
2、async 属性仅适用于外部脚本(只有在使用 src 属性时)。
方案3:<script>标签的defer="defer"属性
defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。
有的 javascript 脚本 document.write 方法来创建当前的文档内容,其他脚本就不一定是了。
如果您的脚本不会改变文档的内容,可将 defer 属性加入到 <script> 标签中,以便加快处理文档的速度。因为浏览器知道它将能够安全地读取文档的剩余部分而不用执行脚本,它将推迟对脚本的解释,直到文档已经显示给用户为止。
示例:
<script type="text/javascript" defer="defer">
alert(document.getElementById("p1").firstChild.nodeValue);
</script>
点评:兼容所有浏览器。此外,这种方法可以确保所有设置defer属性的脚本按顺序执行。
方案4:动态创建<script>标签
示例:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
(function(){
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = "http://code.jquery.com/jquery-1.7.2.min.js";
var tmp = document.getElementsByTagName('script')[0];
tmp.parentNode.insertBefore(s, tmp);
})();
</script>
</head>
<body>
<img src="http://images.cnitblog.com/i/121863/201405/222202573569862.jpg" />
</body>
</html>
点评:兼容所有浏览器。
以上就是针对js异步加载的4种方式进行的区分介绍,希望对大家的学习js异步加载有所帮助。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 详解JavaScript时间格式化
- FullCalendar日历插件应用之数据展现(一)
- js实现图片无缝滚动
- 使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
- js判断文本框输入的内容是否为数字
- javascript新闻跑马灯实例代码
- javascript动态添加checkbox复选框的方法
- js仿微博实现统计字符和本地存储功能
- Bootstrap轮播加上css3动画,炫酷到底!
- 对象题目的一个坑 理解Javascript对象
- IE6-IE9使用JSON、table.innerHTML所引发的问题
- JavaScript+CSS无限极分类效果完整实现方法
- JS实现的表格操作类详解(添加,删除,排序,上移,下移)
- JS控制按钮10秒钟后可用的方法
- js实现C#的StringBuilder效果完整实例
- JavaScript判断对象是否为数组
- javascript中类的定义方式详解(四种方式)
- jquery获取select选中值的方法分析
- JS设置下拉列表框当前所选值的方法