点评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 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
javascript 装载iframe子页面,自适应高度
Mar 20 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
Dec 15 Javascript
使用Browserify配合jQuery进行编程的超级指南
Jul 28 Javascript
Highcharts入门之简介
Aug 02 Javascript
BOM系列第二篇之定时器requestAnimationFrame
Aug 17 Javascript
修改jquery中dialog的title属性方法(推荐)
Aug 26 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 Javascript
JS class语法糖的深入剖析
Jul 07 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
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
Javascript实现单例模式
2016/01/24 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
python中异常报错处理方法汇总
2016/11/20 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
为什么需要版本控制
2016/10/28 面试题
教育系毕业生中文求职信范文
2013/10/06 职场文书
商务英语专业自荐信
2013/10/14 职场文书
连锁经营管理专业大学生求职信
2013/10/30 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
《世界多美呀》教学反思
2014/03/02 职场文书
小学生成绩单评语
2014/12/31 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
python opencv通过4坐标剪裁图片
2021/06/05 Python