• 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的加载分为两个部分:下载和执行。
    延迟下载 :异步
    延迟执行:缓存

  • 相关阅读:
    php-浅谈php底层机制
    Apache-三种工作模式(prefork/ worker/Event)
    java入门了解01
    webserivce通过httppost方式调用
    sqlserver 打开 database diagrams 报错:error code 0x54b
    redhat7,redhat6 替换yum
    虚拟机网络配置的一点总结
    搭建sqlserver AlwaysOn
    NSSM-将服务变为window service
    JavaMelody-监控jvm性能
  • 原文地址:https://www.cnblogs.com/princeness/p/11664926.html
Copyright © 2020-2023  润新知