点评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 相关文章推荐
Javascript 学习笔记 错误处理
Jul 30 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
Aug 30 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
Jan 06 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
Mar 25 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
JS弹出窗口插件zDialog简单用法示例
Jun 12 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 Javascript
AngularJS创建自定义指令的方法详解
Nov 03 Javascript
如何提高数据访问速度
Dec 26 Javascript
详解Vue.js Mixins 混入使用
Sep 15 Javascript
JS实现百度搜索接口及链接功能实例代码
Feb 02 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
jquery提交form表单简单示例分享
2014/03/03 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
python实现简易动态时钟
2018/11/19 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
python 深度学习中的4种激活函数
2020/09/18 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
Java基础面试题
2012/11/02 面试题
生产经理的自我评价分享
2013/11/07 职场文书
任课老师推荐信范文
2013/11/24 职场文书
大学生如何写自荐信
2014/01/08 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
Python os和os.path模块详情
2022/04/02 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis