0

我正在验证一个名为客户端代码的字段的唯一性......

为此,我使用了onkeyup JS 事件。但是当我快速键入键时它不能正常工作。在这

onkeyup 事件

我正在发送一个 ajax 请求来检查输入的数据是否已经存在于表中。

如果有任何选择,请帮助..

4

3 回答 3

2

我认为主要问题是,AJAX 需要一些时间。因此,如果您的用户输入非常快,您将向您的服务器发送许多请求,并且您会得到许多实际上不需要的答案。一种可能的解决方案是,您在事件中设置超时。例如,等到用户在大约 500 毫秒左右没有输入字母。在此之后,您将您的请求发送到服务器。
你的要求会更少,而且你的要求也不能混为一谈......

于 2012-09-13T08:48:30.133 回答
2

就您似乎面临的实际问题而言,您的问题非常模糊。但是我从中得出的结论是,当您建议快速按键时,您发出了太多请求!


如您所知,Ajax它就像一个普通的页面请求,只是异步完成的,因此它受到相同的网络延迟、吞吐量和往返限制。

实现所需功能的一种简洁方法是使用一种称为throttling的技术。用于此目的的最佳js插件之一位于此处: http ://benalman.com/projects/jquery-throttle-debounce-plugin/ 它基本上允许您对对服务器的请求进行速率限制,从而不会阻塞资源和提供流畅的用户界面。


此外,除非您希望捕获某些特殊键,例如ESC,否则我建议您使用keypressorkeydown事件。不记得具体的原因了,只是一个建议。

于 2012-09-13T08:56:48.627 回答
1

使用onkeydown事件和检查event.charCode。即使在快速连续按下打字时也会触发。

于 2012-09-13T08:43:10.260 回答