• script async 和script defer的区别


    浏览器对js文件的操作主要有两部分:下载和执行;

    js文件下载在有些浏览器中是并行的,在有些浏览器中是串行的,如:IE8、firefox3、chrome2都是串行下载的;

    执行在所有浏览器中默认是阻塞的,当js在执行时不会进行html解析和其他操作,所以,页面顶部的js不宜过大,过大会导致页面长时间处于空白状态,对于外链的js文件,async和defer属性可以减少对页面加载的影响

    async表示js是否异步执行,当有这个属性时则不阻塞当前页面的加载,并在js下载完后立刻执行,但是不能保证多个script标签的执行顺序

    defer表示js是否延迟执行,当有这个属性时js的执行会推迟到页面解析完成之后,可以保证多个script标签的执行顺序,需要注意的是这两个属性目前对于内嵌的js是无效的而对于dom中创建的script标签在浏览器中则是异步的

    如果async为true,那么脚本在下载完成后异步执行

    如果async为false,defer为true,那么脚本会在页面解析完毕之后执行

    如果async和defer都为false,那么脚本会在页面解析中,停止页面解析,立刻下载并且执行

    注:本文来自摘抄

  • 相关阅读:
    网页布局——table布局
    Flex 布局——语法属性详解
    CSS实现垂直居中的几种方法
    svn:冲突(<<<<<<.mine ==== >>>>>>.xxxx)
    mysql:4种时间类型
    js:"use strict"; 严格模式
    js函数的Json写法
    spring 官方文档
    mybatis技术文章
    java:可变参数(转载)
  • 原文地址:https://www.cnblogs.com/pearlsong/p/5383762.html
Copyright © 2020-2023  润新知