-1

我正在开发一个大量 JS 的应用程序,我注意到在文本框中输入时,IE8 和 IE7(在 IE9 中还没有看到)随机似乎暂停了几分之一秒,并且没有注册击键。它似乎没有链接到特定字符或字符串长度。我认为如果我打字速度更快,这种情况会发生更多。

我怀疑该应用程序有一个 JS 框架,IE 正在努力控制它,并且当 IE 正在考虑其他事情时,击键会在以太中丢失。

使用 Process Explorer,我注意到该应用程序将 IE 的 RAM 使用率提高到 165MB,并且在键入时 CPU 使用率从 4% 提高到 10%。

我已经通过并尝试删除任何与验证、快捷方式捕获等按键绑定的内容,但它仍然会发生。

问题是应用程序中的 js 太多,或者有人在这种情况下遇到 IE 问题并有其他建议,这似乎是合理的吗?

(编辑)我已经在 Firefox 3.6 和 Chrome 中测试了该应用程序,但都没有遇到这个问题。

感谢您提供的任何帮助。

4

2 回答 2

1

如果您怀疑 JS 处理,那么您应该会看到应用程序在 IE7 或 8 与 IE9 中的性能之间存在显着差异(因为 IE9 的 JS 性能显着加快)。您已经看到 FF 和 Chrome 的显着差异确实支持它是 JS 性能问题。

可能导致它的事情很可能源自计时器事件或事件处理程序,因此值得搜索并暂时禁用尽可能多的内容,以查看是否可以找到导致延迟的原因。

如果一切都失败了,那么您可能需要使用 JS 分析器来查找所有时间的去向。

于 2011-06-30T10:39:14.803 回答
1

我会在输入文本框时检查是否有 JavaScript 运行。

想到的最简单的方法是在 Firefox 中使用带有 Break On Next 选项的 Firebug(如果找不到,请查看图片)。

然后,当您专注于文本框并开始输入时,调试器应该会在调用的函数处弹出。!

于 2011-06-30T10:52:11.107 回答