JS中defer的作用
时间: 2023-03-06 17:11:32 浏览: 66
"defer" 在 JavaScript 中是一个关键字,用于告诉浏览器在页面加载完成后再执行指定的脚本。使用 "defer" 会确保在页面上的其他资源,如图像和样式表等,都已加载完成之后再执行脚本。这可以提高页面加载速度和体验。
相关问题
defer和async区别和作用
`defer` 和 `async` 是两个不同的关键字,用于不同的场景。
`defer` 用于延迟执行代码块,通常用于资源的释放或清理。当一个函数中存在多个 `defer` 语句时,它们会按照逆序执行。`defer` 语句常常用于打开文件、锁定资源等操作,以确保在函数执行完毕后这些资源能够被正确释放。
例如:
```go
func readFile(filename string) (string, error) {
file, err := os.Open(filename)
if err != nil {
return "", err
}
defer file.Close()
// 读取文件内容
content, err := ioutil.ReadAll(file)
if err != nil {
return "", err
}
return string(content), nil
}
```
在上面的例子中,`file.Close()` 语句被包含在 `defer` 语句中,确保文件在函数执行完毕后被正确关闭,即使在读取文件内容时发生了错误。
`async` 用于异步执行代码块,通常用于并发编程。异步函数会立即返回一个 Promise 对象,执行完毕后会调用 Promise 对象的 `resolve` 或 `reject` 方法。异步函数通常会与 `await` 关键字一起使用,以便在异步操作完成后获取结果。
例如:
```js
async function fetchData(url) {
const response = await fetch(url);
const data = await response.json();
return data;
}
```
在上面的例子中,`fetch` 函数是一个异步函数,返回一个 Promise 对象,`await` 关键字用于等待 Promise 对象的结果。`fetchData` 函数也是一个异步函数,返回一个 Promise 对象,当 `fetch` 函数执行完毕后会调用 Promise 对象的 `resolve` 方法,返回获取到的数据。
总的来说,`defer` 用于延迟执行代码块,`async` 用于异步执行代码块。两者的作用是不同的,应根据具体情况选择使用。
script中defer和async
b'script\xe4\xb8\xaddefer\xe5\x92\x8casync'是关于JavaScript代码加载的两种策略。defer是让代码在页面加载完毕后再执行,而async是让代码在下载完成后立即执行。两者的差别在于执行的时间点不同,使用时需要根据具体需求来选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)