gpt4 book ai didi

javascript - 在 IE 中轮询的 setTimeout 间隔是多少比较合适?

转载 作者:行者123 更新时间:2023-12-02 20:34:03 25 4
gpt4 key购买 nike

我有一个在浏览器 (IE) 中运行的 ActiveX 对象(我有源代码)。 ActiveX 对象有一个 UI,它引发事件。我想响应浏览器中的这些事件。

我不想从 ActiveX 对象事件调用 JavaScript 函数:因此,我希望 JavaScript 轮询 ActiveX 对象的方法(也就是说,“您有任何事件要报告吗?”) .

我将使用如下代码来做到这一点:

function findActiveXObject() {
return document.getElementById('MyActiveXObject');
}
function startPolling() {
setTimeout('pollForEvents()', 100);
}
function pollForEvents() {
var activeXObject = findActiveXObject();
var eventMsg = activeXObject.PollForEvent();
if (eventMsg != null)
{
//do something with the event
alert(eventMsg);
}
//poll again soon
startPolling();
}

什么是合适的轮询间隔?

我猜,虽然我不确定,工作量很小:它只是调用 ActiveX 对象的方法,该方法要么返回已缓存的字符串,要么返回 null。

我想经常轮询:这样看起来浏览器(实际上是 JavaScript)能够迅速响应 ActiveX 对象中的 UI 事件。

100 毫秒是否太小? 50 毫秒怎么样?

在 100 毫秒的间隔下,我在浏览器中仅看到 1% 的 CPU 利用率:但这只是在我的计算机上。一般情况下(运行 IE 的台式机)怎么样?

如果这是一个 native 线程,我不会担心每 50 毫秒唤醒它,但我在 IE 中运行 JavaScript 的经验很少。

最佳答案

我建议每秒轮询一次。
您真的需要即时 react 吗?

此外,您不应将字符串传递给 setTimeout
相反,您应该传递函数本身,例如 htis:

setTimeout(pollForEvents, 1000);

关于javascript - 在 IE 中轮询的 setTimeout 间隔是多少比较合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3596610/

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