IE没有注册JS重型应用程序中的所有击键

时间:2011-06-30 10:03:46

标签: javascript internet-explorer keystroke

我正在开发一个大量JS的应用程序,我注意到当输入文本框IE8和IE7(尚未在IE9中看到)时,随机似乎暂停了几分之一秒而没有注册关键笔划。它似乎与特定字符或字符串长度无关。我认为如果我输入得更快就会发生更多。

我的怀疑是该应用程序有一个JS框架,IE正在努力控制并且因为IE正在考虑别的事情,所以键盘会在以太网中丢失。

使用Process Explorer,我注意到该应用程序将IE的RAM使用率提升至165MB,而输入CPU使用率则从4%提高到10%。

我已经完成并试图删除绑定到关键笔划的任何内容以进行验证,快捷方式捕获等等。它仍然会发生。

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

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

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

最简单的方法是在Firefox中使用Firebug并使用Break On Next选项(look at the image if you can't find it)。

然后当你专注于文本框并开始输入调试器时,应该在名为的函数中弹出。!