点评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 Array(数组)相关方法简述
Jul 25 Javascript
基于jquery的关于动态创建DOM元素的问题
Dec 24 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
JavaScript输入邮箱自动提示实例代码
Jan 13 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
JavaScript中的继承方式详解
Feb 11 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 Javascript
解决layui checkbox 提交多个值的问题
Sep 02 Javascript
JavaScript变量基本使用方法实例分析
Nov 15 Javascript
微信小程序登陆注册功能的实现代码
Dec 10 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
Jul 28 Javascript
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实现小型站点广告管理
2006/10/09 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
Vue动态组件实例解析
2017/08/20 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
Python中用format函数格式化字符串的用法
2015/04/08 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
python http接口自动化脚本详解
2018/01/02 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
tensorflow 实现数据类型转换
2020/02/17 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
Keras中的两种模型:Sequential和Model用法
2020/06/27 Python
python实现按日期归档文件
2021/01/30 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
合作意向书范本
2014/03/31 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
PHP使用QR Code生成二维码实例
2021/07/07 PHP
SQL Server表分区删除详情
2021/10/16 SQL Server