【问题标题】:Keep UI updated while script is running在脚本运行时保持 UI 更新
【发布时间】:2013-09-12 20:20:27
【问题描述】:

我通过谷歌地图 API v3 使用谷歌地图。我需要为每个菜单项添加一个叠加层。每次单击该项目时,都会加载新的叠加层/热图。这可行,但标记/热图点的加载会冻结 UI。

有没有办法防止这种情况发生,比如在后台线程中更新?我知道 JavaScript 并不真正支持线程,但你知道一些技巧吗?

【问题讨论】:

  • 好的,但我什至无法添加 loader-gif,因为 UI 在更改时间的任何时间点都不会更新。也许对此有一些技巧?
  • 是的,添加 gif,然后使用 setTimeout(..,0) 调用其余代码。这将清除当前调用堆栈,让浏览器进行任何渲染,然后调用您传递给 setTimeout 的任何内容。 (如果您的代码使浏览器忙碌,gif 仍然不会动画)

标签: javascript html css google-maps-api-3


【解决方案1】:

您可以尝试研究 WebWorkers。

或者您可以将您的工作分成单独的块,并在下一个块之后使用 setTimeout 调用每个块,超时为 0。

setTimeout( function() { executeNextChunk(); }, 0 )

这让浏览器有时间在两次调用之间做其他事情。

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多