JavaScript 中事件上下文中 Target 和 currentTarget 的区别

Posted by cl9000 on May 21, 2020

在事情成功之前,一切总看似不可能。——<纳尔逊·曼德拉>

Target 和 currentTarget 的区别

target指触发事件的 DOM 元素。否则,currentTarget 引用事件侦听器正在侦听的 `DOM 元素。

1
2
3
<ul class="todo-list">
<li class="item">Walk your dog</li>
</ul>
1
2
3
4
5
6
7
8
const list = document.querySelector(".todo-list");

list.addEventListener("click", e => {
console.log(e.target);
// Output: <li class="item">Walk your dog</li>
console.log(e.currentTarget);
// Output: <ul class="todo-list"></ul>
});

参考

使用 Websocket 超时

如果建立了Websocket连接,则服务器或防火墙在一段时间不活动后可能会超时并终止连接。为了处理这种情况,我们向服务器发送定期消息。为了控制超时,我们将在代码中添加两个函数:一个用于确保连接保持活动状态,另一个用于取消保持活动状态。我们还需要一个公共timerID变量。让我们来看看实现-

1
2
3
4
5
6
7
8
9
10
11
12
13
var timerID = 0; 
function keepAlive() {
var timeout = 20000;
if (webSocket.readyState == webSocket.OPEN) {
webSocket.send('');
}
timerId = setTimeout(keepAlive, timeout);
}
function cancelKeepAlive() {
if (timerId) {
clearTimeout(timerId);
}
}

现在,由于我们同时具有任务所需的功能,因此将keepAlive()功能放置在onOpen()websocket连接方法的末尾,并将cancelKeepAlive()功能放置在onClose()websocket连接方法的末尾。

参考

关注【公众号】,了解更多。



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!