加载Javascript脚本的方法

简介: 加载Javascript脚本的方法

将Javascript插入HTML的方法主要方法是使用script标签。 针对srcipt元素,由两个属性async和defer,分别表示推迟执行脚本和异步执行脚本。

推迟执行脚本

<script defer scr="example.js"></script>
复制代码

defer属性会告诉浏览器应该立即开始下载,但执行应该推迟。 脚本会在DOMContentLoaded事件之前执行。

异步执行脚本

<script async scr="example.js"></script>
复制代码

给脚本添加async属性的目的是告诉浏览器,不必等脚本下载和执行完后再加载页面,同样也不必等到该异步脚本下载和执行完再加载其他脚本。

异步脚本保证会在页面的load事件前执行,但可能会在DOMContentLoaded事件之前或之后。

动态加载脚本

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

let script - document.createElement('script');
script.src = 'test.js'
document.head.appendChild(script);
复制代码

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

let script - document.createElement('script');
script.src = 'test.js';
script.async = false;
document.head.appendChild(script);
复制代码

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

<link rel="prelaod" href="test.js">



相关文章
|
12天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
14天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
16 0
|
15天前
|
JSON JavaScript 前端开发
JavaScript原生代码处理JSON的一些高频次方法合集
JavaScript原生代码处理JSON的一些高频次方法合集
|
1月前
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
43 1
|
1月前
|
JavaScript 前端开发
解释 JavaScript 中的`map()`、`filter()`和`reduce()`方法的用途。
解释 JavaScript 中的`map()`、`filter()`和`reduce()`方法的用途。
19 1
|
12天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
5天前
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
js 垃圾回收机制的方法
|
5天前
|
JavaScript 前端开发
js数据类型有几类?一共有几种?判断数据类型的方法是什么?
js数据类型有几类?一共有几种?判断数据类型的方法是什么?
|
6天前
|
JavaScript 前端开发
js绑定事件的方法
js绑定事件的方法
20 11
|
6天前
|
JavaScript
JS生成uuid的四种方法
JS生成uuid的四种方法
9 0