gpt4 book ai didi

javascript - 使用 JavaScript 和 HTML5 Web Workers 在用户不活动时触发 AJAX 请求

转载 作者:行者123 更新时间:2023-11-30 20:26:13 25 4
gpt4 key购买 nike

我正在开发一个聊天系统,只要用户在一定时间内处于非事件状态,它就会触发一个AJAX 请求。我试图仅在 JavaScript 中解决它,但在用户激活时尝试设置非事件时钟时总是失败。有什么办法可以实现这个功能吗?

作为一个可能的选择,我确定了 HTML5 Web Workers。但是创建的 worker 不能访问 DOM 我需要做的来处理 AJAX 请求的响应。为了绕过这个,工作人员可以向主线程发布某种消息,但在那里我完全失去了概述。


目前,我有三个相关的代码元素,它们应该能够相互交互。

启动非事件时钟(在用户不活动时启动,应该在一段时间后触发 AJAX 请求,但应该能够通过停止非事件时钟功能停止):

function startInactiveClock() {
var waitingTime;
var waitStart = performance.now();
// waiting time limit set to 30 seconds
while (waitingTime < 30000) {
// unfortunately kills the web browser
waitingTime = performance.now - waitBegin;
}
triggerAJAXRequest();
}

触发 AJAX 请求(应该能够访问 DOM):

function triggerAJAXRequest() {
$.ajax({
...
success: function(data, status, xhttp) {
response = data;
var newChatMessage = '<div class="ChatMessage">' + response + '</div>';
$("#chatHistory").prepend(newChatMessage);
},
...
});
$("#userInputTxt").focus();
}

停止非事件时钟(在用户事件时启动,应该能够停止启动非事件时钟功能):

function stopInactiveClock() {
// do something to stop the inactive function counter
}

最佳答案

您应该改用 window.setTimeout .

因此,您可以在满足非事件期时开始超时,然后在超时内再次检查,以确保用户已处于非事件状态,然后触发 ajax 函数。

关于javascript - 使用 JavaScript 和 HTML5 Web Workers 在用户不活动时触发 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50895429/

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