zoukankan      html  css  js  c++  java
  • JS----异步加载

    参考学习:https://www.cnblogs.com/zuobaiquan01/p/8477322.html
    有关promise的学习:
    https://blog.csdn.net/shuidinaozhongyan/article/details/71702992

    1. 如果 async=“async”:脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
    2. 如果不使用 async 且defer=“defer”:脚本将在页面完成解析时执行
    3. 如果既不使用 async 也不使用 defer:在浏览器继续解析页面之前,立即读取并执行脚本

    (1) defer,只支持IE
    页面已加载后才会运行脚本:
    注意:defer 属性仅适用于外部脚本(只有在使用 src 属性时)。
    defer属声明脚本中将不会有document.write和dom修改。浏览器会并行下载其他有defer属性的script。而不会阻塞页面后续处理。
    (2) async属性:HTML5新属性。
    脚本将在下载后尽快执行,作用同defer,但是不能保证脚本按顺序执行。他们将在onload事件之前完成。
    (3)1.。向DOM中写入script(head后第一个/script之前、onload绑定事件)
    2。XHR注入 创建iframe

    对于支持HTML5的浏览器,实现JS的异步加载只需要在script元素中加上async属性,为了兼容老版本的IE还需加上defer属性;
    对于不支持HTML5的浏览器(IE可以用defer实现),可以采用以上几种方法实现。原理基本上都是向DOM中写入script或者通过eval函数执行JS代码,你可以把它放在匿名函数中执行,也可以在onload中执行,也可以通过XHR注入实现,也可以创建一个iframe元素,然后在iframe中执行插入JS代码。

    JS的加载分为两个部分:下载和执行。
    延迟下载 :异步
    延迟执行:缓存

  • 相关阅读:
    composer 基本概念与常用命令总结
    慕课笔记-JavaScript正则表达式
    [网络编程]epoll的基础用法
    [C++学习笔记] const限定符
    boost库常用功能
    kafka C客户端librdkafka producer源码分析
    kafka 0.8.1 新producer 源码简单分析
    第一篇博客
    Jmeter连接数据库
    Jmeter录制APP脚本
  • 原文地址:https://www.cnblogs.com/princeness/p/11664926.html
Copyright © 2011-2022 走看看