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

 更新时间:2015年12月22日 09:38:30   作者:黄聪  
这篇文章主要介绍了点评js异步加载的4种方式,帮助大家更全面的了解js异步加载方式,感兴趣的小伙伴们可以参考一下

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实现复选框全选功能

    这篇文章主要为大家详细介绍了JavaScript实现复选框全选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 了解Javascript的模块化开发

    了解Javascript的模块化开发

    这篇文章主要介绍了了解Javascript的模块化开发,本文讲解了为什么需要模块化开发,模块化开发的形成原因等内容,需要的朋友可以参考下
    2015-03-03
  • 完美兼容多浏览器的js判断图片路径代码汇总

    完美兼容多浏览器的js判断图片路径代码汇总

    本文给大家汇总分享了几种使用javascript实现判断图片路径是否存在的代码,都是平时项目中用到过的,这里总结一下,有需要的小伙伴可以参考下。
    2015-04-04
  • 通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法

    通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法

    这篇文章主要介绍了通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 浅谈js之字面量、对象字面量的访问、关键字in的用法

    浅谈js之字面量、对象字面量的访问、关键字in的用法

    下面小编就为大家带来一篇浅谈js之字面量、对象字面量的访问、关键字in的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 一些老手都不一定知道的JavaScript技巧

    一些老手都不一定知道的JavaScript技巧

    这篇文章主要介绍了一些老手都不一定知道的JavaScript技巧,需要的朋友可以参考下
    2014-05-05
  • js遍历获取表格内数据的方法(必看)

    js遍历获取表格内数据的方法(必看)

    下面小编就为大家带来一篇js遍历获取表格内数据的方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 微信小程序slider组件使用详解

    微信小程序slider组件使用详解

    这篇文章主要为大家详细介绍了微信小程序slider组件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • echarts使用中关于y坐标轴无法正常显示的问题解决记录

    echarts使用中关于y坐标轴无法正常显示的问题解决记录

    Echarts是由百度提供的数据可视化解决方案,下面这篇文章主要给大家介绍了关于echarts使用中关于y坐标轴无法正常显示的问题解决记录,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • JavaScript 对象不变性介绍

    JavaScript 对象不变性介绍

    这篇文章主要介绍了JavaScript 对象不变性,对象不变性在任何编程语言中都是一个重要的概念。它会限制对象修改并防止不需要的更改。简而言之,对象的不变性就是将它的状态变为只读的下面详细内容,需要的小伙伴可以参考一下
    2022-02-02

最新评论