javascript - 使用 setTimeout 模拟并行操作有什么本质上的错误吗?

标签 javascript blocking user-experience

当此应用的用户对字段进行更改时,其他字段需要进行大量更改。通常,即使使用优化的脚本,浏览器也会在 IE 中阻止用户输入超过 1 秒。为了阻止发生,我这样做:

var i = 100;
GetTextInputs().filter('[' + name + ']').each(function()
{    
    setTimeout("DoWork('" + this.id + "', '" + v + "', '" + name + "');", i);
    i += 25;
});

我觉得有点老套,但效果很好。

  • 这种方法会出什么问题吗?
  • 或者,有更好的方法吗?

最佳答案

可能会出现严重错误的一件事是,拥有太多高频计时器会 [讽刺地] 使用户界面迟缓/ react 迟钝。来自 http://googlecode.blogspot.com/2009/07/gmail-for-mobile-html5-series-using.html :

With low-frequency timers — timers with a delay of one second or more — we could create many timers without significantly degrading performance on either device. Even with 100 timers scheduled, our app was not noticeably less responsive. With high-frequency timers, however, the story was exactly the opposite. A few timers firing every 100-200 ms was sufficient to make our UI feel sluggish.

关于javascript - 使用 setTimeout 模拟并行操作有什么本质上的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348611/

相关文章:

javascript - 为什么这个弹出窗口在 IE 上失败?

javascript - 提供模块 API 时缺少回调的预期行为

Java InputStream 阻塞读取

c++ - 在插槽中调用 QDialog::exec 是否会阻塞主事件循环?

ios - UIPickerView - 条件显示

敏捷和用户体验设计

jquery - 如何记录 Web 应用程序的详细用户指标?

javascript - 使用 Facebook Graph 仅使用 javascript 简单地发布墙上消息

javascript - 如何让 jquery animate 看起来更流畅?

java - 将 NIO 与 IO 混合