3

我有一个 Web 应用程序每 1 秒轮询一次服务器以获取数据以更新其显示。我看到浏览器的 CPU 使用率逐渐(一夜之间)从 6% 增加到 30%,而没有应用程序交互或行为改变。

这个问题很容易通过在 Chrome 上运行的代码重现,我将轮询间隔减少到100 毫秒以获得更明显的效果:

<html>
<body>
<script>
var i = 0;
var xhr = new XMLHttpRequest();
xhr.onload = function() {
    console.log("response", i++);
    setTimeout(send, 100);
}
function send() {
    xhr.open("GET", "/", true);
    xhr.send();
}
send();
</script>

此代码可以轻松地在任何 Web 服务器上运行,例如

python -m SimpleHTTPServer 8888

在此示例中,CPU 使用率无明显原因快速增加。我没有处理并使用setTimeout而不是setInterval所以我从来没有重叠的请求。

我正在使用 Chrome(和 Safari)进行测试,但仍然看到 CPU 使用率快速增加。任何想法为什么?

4

1 回答 1

2

因为您每 100 毫秒用新行填充控制台输出;)

于 2013-08-18T15:54:20.960 回答