gpt4 book ai didi

javascript - 我们可以在 JS 中监听事件之前发生的事件吗?

转载 作者:行者123 更新时间:2023-11-28 01:42:21 25 4
gpt4 key购买 nike

我有一个图像事件处理代码如下

HTML

<!DOCTYPE html>
<html>
<head>
<title>Promise DEMO</title>
</head>
<body>
<img src="someImagePath.jpg" class="img-1"/>
</body>
</html>

JavaScript

var img1 = document.querySelector('.img-1');

img1.addEventListener('load', function() {
// woo yey image loaded
});

img1.addEventListener('error', function() {
// argh everything's broken
});

在我开始收听事件之前,事件有可能发生,会出现什么情况?

目的是理解为什么我应该使用 promise 。

最佳答案

一般来说,JavaScript 中的事件(包括 DOM 更改)是完全异步的,因此将监听器绑定(bind)到对象的时间点可以发生在事件发生之前或之后。

简单的例子:

  1. 浏览器开始构建文档
  2. 找到图像标记并将其放置在 DOM 流中
  3. 后台下载图片源
  4. 找到 JavaScript,开始执行
  5. 图像源已加载
  6. 找到 Javascript 事件监听器绑定(bind)
  7. 图像已加载,无需再监听加载事件

有关这些场景以及如何使用 Promise 解决这些问题的更详细说明可以在下面的链接中找到:

http://www.html5rocks.com/en/tutorials/es6/promises/

关于javascript - 我们可以在 JS 中监听事件之前发生的事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com