当字符输入非常快时,Javascript按键捕获

时间:2009-12-29 11:56:40

标签: javascript events javascript-events keyboard extjs

我们正在编写一个ExtJS应用程序,它在很大程度上依赖于捕获用户击键。但是我相信我发现了一个“时间问题”,当按键过快时,会出现意外行为,特别是在我们的情况下,重复的条目会被添加到缓存在内存中的数组中。

我有一个解决方案的想法,但我正在寻找输入,以了解我的想法和其他可能的解决方案的陷阱。本质上我的想法是,不是直接处理每个按键,而是将按键添加到堆栈,然后调用处理堆栈的函数/方法。对于初学者来说,该功能总是从堆栈中弹出一个项目。但是当它完成这样做时,它将检查是否已经附加了堆栈,如果是,则处理该条目(或条目)。

1 个答案:

答案 0 :(得分:2)

堆栈会给你后进先出(LIFO),你很可能想要利用队列进行先进先出(FIFO),因为你想要将关键字符出列第一次出现在堆栈上。所以理论上你会想要使用enqueue / dequeue而不是push / pop来按正确的顺序处理密钥。