点评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 学习笔记(九)call和apply方法
Jan 11 Javascript
使用jQuery轻松实现Ajax的实例代码
Aug 16 Javascript
js 处理URL实用技巧
Nov 23 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
利用浏览器全屏api实现js全屏
Jan 16 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
Mar 04 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
Jan 12 Javascript
简单理解vue中实例属性vm.$els
Dec 01 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
详解Vue 方法与事件处理器
Jun 20 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
浅谈对于react-thunk中间件的简单理解
May 01 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
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
浅谈php调用python文件
2019/03/29 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
python自动裁剪图像代码分享
2017/11/25 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
keras的三种模型实现与区别说明
2020/07/03 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
表彰先进的通报
2014/01/31 职场文书
公司活动总结范文
2014/07/01 职场文书
团队拓展活动方案
2014/08/28 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python