通过ajax自动完成

时间:2011-02-07 08:56:43

标签: ajax http autocomplete

我想使用自动完成建议结果。我需要在每次击键时发送AJAX请求。为此我想保持HTTP连接打开几秒钟,如果在那段时间内输入了某些东西,我想在同一个连接中发送AJAX。如果在该时间段内没有输入任何内容,我想关闭HTTP连接。

背景:

我已经使用了typewatch插件。但是每次发送请求时都会建立HTTP连接。我还是想提高速度。我在这个帖子http://www.philwhln.com/quoras-technology-examined#the-search-box中读到:

  

Quora使用持久连接。一个   建立HTTP连接   当你开始输入时的服务器   搜索查询。

如何通过跨浏览器支持执行此操作?它只是保持活着吗?

1 个答案:

答案 0 :(得分:0)

你做不到。每个请求 - 响应往返都是异步的,这意味着当它被发送时,它等待该特定请求的响应返回,然后处理它。

我认为您要做的是阻止您的脚本敲击服务器。要做到这一点,有多种方法,但最常见的是使用击键计时器。在将包含文本框值的请求发送到服务器之前,计时器在用户完成输入后等待指定的毫秒数。

如果您使用的是JQuery,可以使用TypeWatch插件执行此操作。 JQuery还将满足您的跨浏览器要求。

但是,既然你也想做自动完成,你也可以使用内置按键计时器的JQuery AutoComplete插件,默认设置为400 millseconds。点击this page上的 OPTIONS TAB ,查看可以传递到插件的所有配置选项。