2

我有一个 JS 应用程序,它使用 setInterval 每秒更新多次。大多数时候它什么都不做,也不是很占用 CPU。我听说有人说 JavaScript 计时器会耗尽手机的电池寿命,但我没有看到任何事实或证据。

有什么好方法可以测量我在 iOS 上的 JS 应用程序的电池消耗吗?或者有人可以解释如何使用 setInterval 调用非 CPU 密集型函数会更快地耗尽电池?

4

2 回答 2

2

setInterval 每次运行时都会唤醒 CPU。你每秒说多少次?如果超过 10 个,您应该找到不同的解决方案,setInterval 是适合该工作的错误工具。

于 2012-08-03T03:43:51.703 回答
1

虽然我对您的问题没有具体答案,但您可以牢记一些指导方针。

当页面/选项卡/窗口不活动时,移动浏览器往往不会运行 javascript 代码。例如,在 iOS 中,setInterval 之类的代码只会在显示屏打开、Safari 打开以及包含代码的页面处于活动状态时运行。我相信它与 Android 和 WinPhone 设备类似。

在开发打算开放一段时间的 Web 应用程序时,您必须注意自己。这可能是餐厅评论网站、游戏或使用地理定位 (gps) api 的东西。如果您的 Web 应用程序打算长时间使用,那么持续运行代码影响电池,可能会显着影响。您将需要在不同设备之间设置测试协议并测试每个设备以确保,因为没有简单的方法来给出具体数字。所有网络应用程序都是不同的。

于 2012-08-03T03:44:25.490 回答