【发布时间】:2016-01-21 18:42:11
【问题描述】:
所以我有这个单页应用程序,每次用户执行诸如单击按钮之类的操作时都会进行大量计算。由于 javascript 不是线程化的,冗长的计算会阻塞 UI 更新并造成糟糕的用户体验:
$('update-btn').click() {
updateDomWithAnimation();
doLenghtyCalc();
}
在阅读了太多关于如何处理这个问题的文章之后,我发现用window.setTimeout 包装一些函数调用确实有帮助。因此,有了这些知识,我开始将它们包装起来,它似乎给浏览器带来了一些响应能力。
但是我的问题是,即使延迟仅为 0 或 1,超时语句过多也会产生不良副作用吗?从业务逻辑的角度来看,我确保只有独立的独立函数包含在 setTimeout 中。我想从技术角度进行检查。有没有 JS 大师可以分享一些见解?
P.S:我看过 Web Workers,但我的代码是使用 Jquery 构建的,并且严重依赖于 DOM 状态等,因此无法实现 Web Workers atm,这就是我使用超时的原因 非常感谢!
【问题讨论】:
-
可能想研究一下使用Web Workers API
-
js 正在客户端设备上运行.. 所以如果你的代码搞砸了某人,那将只是客户端......我仍然不明白你为什么需要这样的延迟......也许你可以告诉我们有关您的方案的更多详细信息
-
@charlietfl:谢谢你的链接,我已经看过了,但是我的代码是使用 Jquery 构建的,并且严重依赖于 DOM 状态等,因此无法实现 web worker atm,这是为什么我使用超时
标签: javascript jquery html dom