我正在验证一个名为客户端代码的唯一性字段 ...
为此,我使用了 onkeyup JS事件。 但是当我非常快速地键入键时它不能正常工作。在此
onkeyup事件
我发送一个ajax请求,检查输入的数据是否已经存在于表中。
如果有其他选择,请帮助..
答案 0 :(得分:2)
我认为主要的问题是,AJAX需要一些时间。因此,如果您的用户输入速度非常快,您将向服务器发送许多请求,您将获得许多实际上不需要的答案。 一种可能的解决方案是,您在事件中暂停。例如等到用户没有输入大约500毫秒左右的字母。然后,您将请求发送到服务器 您的请求会减少,而且您的请求也不会混淆......
答案 1 :(得分:2)
就您似乎面临的实际问题而言,您的问题非常模糊。但我从中得出的结果是,你提出的快速键按下你发出的请求太多了!
正如您所知,Ajax
就像一个普通的页面请求,只是完成了异步,所以它受到相同的网络延迟,吞吐量和往返限制的约束。
实现所需功能的一种简洁方法是使用一种名为限制的技术。用于此目的的最佳js
插件之一位于此处:http://benalman.com/projects/jquery-throttle-debounce-plugin/
它基本上允许您对服务器的请求进行速率限制,从而不会阻塞资源并提供流畅的UI。
此外,除非您想要捕获某些特殊键,例如 ESC ,否则我建议您使用keypress
或keydown
个事件。不记得它的具体推理,只是一个建议。
答案 2 :(得分:1)
使用onkeydown
事件并检查event.charCode
。即使快速连续按下打字,这也会激发。