JavaScript setTimeout 和 Chrome 内存利用率

发布于 2025-01-03 05:08:01 字数 583 浏览 3 评论 0原文

我面临 javascript 和浏览器 (Chrome) 内存利用率的问题。

我的脚本中有计时器(setTimeout),它是从浏览器检查位置。我注意到该选项卡的内存利用率(在任务管理器中)逐渐增加,这会导致在一段时间后所有选项卡中的内存达到最大,并最终页面冻结和崩溃。

有什么方法或一些JS可以在一段时间后释放内存吗?

解决方案:

之前:

function recalculateDistance() {
    getLocation();
    getDistance();
    setTimeout("recalculateDistance()", 10000);
}

之后:

var timer = null;

function recalculateDistance() {
        clearTimeout(timer);
        getLocation();
        getDistance();
        timer = setTimeout("recalculateDistance()", 10000);
}

I am facing a problem with javascript and browser (Chrome) memory utilization.

There is timer (setTimeout) in my script, which is check location from browser. I have noticed that there is gradual increase in memory utilization (in task manger) by this tab which result in max memory among all tabs after some time and eventually page freezes and crashes.

Is there any way or some JS using which I can free memory after some time?

solution :

Before :

function recalculateDistance() {
    getLocation();
    getDistance();
    setTimeout("recalculateDistance()", 10000);
}

After :

var timer = null;

function recalculateDistance() {
        clearTimeout(timer);
        getLocation();
        getDistance();
        timer = setTimeout("recalculateDistance()", 10000);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽容 2025-01-10 05:08:01

按照建议发布代码。

正如其名称所示,有 clearTimeout() 用于清除超时。这可以帮助你吗?

此外,如果您正在执行“计时器”,我建议使用 setInterval() 而不是 setTimeout()

Post the code, as suggested.

There is clearTimeout() for, like the name says, clearing timeouts. This could help you?

And in addition, if you're doing a "timer", I'd suggest using setInterval() instead of setTimeout()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文