zoukankan      html  css  js  c++  java
  • script标签属性sync和defer

    <script src="a.js" defer></script>
    加了defer属性script标签的页面,运行流程如下:
     
    1.浏览器开始解析HTML页面
     
    2.遇到有defer属性的script标签,浏览器继续往下面解析页面,且会并行下载script标签的外部js文件
     
    3.解析完HTML页面,再执行刚下载的js脚本(在DOMContentLoaded事件触发前执行,即刚刚解析完</html>,且可保证执行顺序就是他们在页面上的先后顺序)
     
    注意事项:
     
    1.内置js代码的script标签,以及动态生成的script标签,defer属性不生效
     
    2.有defer属性的script标签脚本文件里不能使用document.write方法
     
    <script src="a.js" sync></script>
    加了sync属性script标签的页面,运行流程如下:
    1.浏览器开始解析页面
     
    2.遇到有sync属性的script标签,会继续往下解析,并且同时另开进程下载脚本
     
    3.脚本下载完毕,浏览器停止解析,开始执行脚本,执行完毕后继续往下解析
     
    注意事项:
     
    1.无法保证脚本的执行顺序,哪个脚本先下载完毕,就先执行哪个
     
    2.也不能使用document.write方法
     
     
     
    使用场景区分:
     
    1.脚本之间没有依赖关系的,使用sync
     
    2.脚本之间有依赖关系的,使用defer
     
    3.若同时使用sync和defer,defer不起作用,sync生效
  • 相关阅读:
    layui 动态设置radio选中
    C# ling 查询 in 用法
    sql 去除小数点后面无效的0
    VUE 全局变量申明和取值
    SQL 逗号分隔将一行拆成多行
    devexpress 延长试用期 licenses.licx
    BugkuCTF-WEB4
    一招破解网页复制+网页上如何实现禁止复制粘贴
    JS的函数
    JS的数组
  • 原文地址:https://www.cnblogs.com/gqymy/p/10473909.html
Copyright © 2011-2022 走看看