点评js异步加载的4种方式


Posted in Javascript onDecember 22, 2015

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异步加载有所帮助。

Javascript 相关文章推荐
Js 订制自己的AlertBox(信息提示框)
Jan 09 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
Sep 30 Javascript
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
js简单的点击返回顶部效果实现方法
Apr 10 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
js实现遍历含有input的table实例
Dec 07 Javascript
Web打印解决方案之证件套打的实现思路
Aug 29 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 Javascript
JavaScript常见事件处理程序实例总结
Jan 05 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
layui复选框限制选择个数的方法
Sep 18 Javascript
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
JS模拟按钮点击功能的方法
Dec 22 #Javascript
jquery插件jquery.confirm弹出确认消息
Dec 22 #Javascript
js实现仿微博滚动显示信息的效果
Dec 21 #Javascript
Javascript实现Array和String互转换的方法
Dec 21 #Javascript
图解Sublime Text3使用技巧
Dec 21 #Javascript
七个不允许错过的jQuery小技巧
Dec 21 #Javascript
jQuery焦点图插件SaySlide
Dec 21 #Javascript
You might like
使用PHP和XSL stylesheets转换XML文档
2006/10/09 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
python3生成随机数实例
2014/10/20 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
对于Python中RawString的理解介绍
2016/07/07 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
Java详细解析==和equals的区别
2022/04/07 Java/Android