2.1.4动态加载脚本

文章讨论了如何通过DOMAPI动态创建script元素来加载JavaScript脚本,指出默认情况下是异步加载,可能影响性能。为确保兼容性和控制加载顺序,可以设置async属性为false进行同步加载。同时,为了优化预加载,可以在文档头部使用linkrel=preload声明资源。
摘要由CSDN通过智能技术生成

除了利用 <script> 标签,还有其他方式可以加载脚本。
因为JavaScript可以通过 DOM API ,所以通过向 DOM 中动态添加 script 元素中加载指定的脚本。只要创建一个 script 元素,并将其添加到 DOM 中即可。

let script = document.createElement('script');
script.src  = 'gibberish.js';
document.head.appendChild(script);

当然,在把HTMLElement 元素添加到 DOM 且执行到这段代码之前不会发送请求。默认情况下,以这种方式创建的 <script> 元素是以异步的方式加载的,相当于添加了 async 属性。
不过这样做可能会有问题。因为所有浏览器都支持 createElement() 方法,但是不是所有的浏览器都支持 async 属性。因此要统一动态加载脚本的行为,可以明确将其设置为同步加载:

let script = document.createElement('script');
script.src  = 'gibberish.js';
script.async = false;
document.head.appendChild(script);

以这种方式获取的资源对浏览器预加载器是不可见的。
这会严重影响它们在资源获取队列中的优先级。
根据应用程序的工作方式以及怎么使用,这种方式可能会严重影响到性能。
要想让预加载器知道这些动态请求文件的存在,可以在文档头部显式声明它们:

 <link rel="preload" href="gibberish.js">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值