Javascript 删除搜索框中的多个外部api调用自动完成

Javascript 删除搜索框中的多个外部api调用自动完成,javascript,jquery,python,ajax,django,Javascript,Jquery,Python,Ajax,Django,我正在开发一个用Python Django编写的应用程序。有一个页面包含一个搜索框,该搜索框接受用户的文本输入,当输入长度大于或等于2时,它会对外部API进行ajax调用。 例如,如果我键入“ka”,它将使用参数“ka”对该API进行ajax调用,并返回带有该前缀的20个字符串。同样,如果我输入'kar',它将再次使用'kar'进行ajax调用,并返回20个前缀为'kar'的字符串 如果我没有指定所需的匹配数,那么我调用的API可以返回带有前缀的所有字符串。因此,我希望将第一个ajax调用的响应

我正在开发一个用Python Django编写的应用程序。有一个页面包含一个搜索框,该搜索框接受用户的文本输入,当输入长度大于或等于2时,它会对外部API进行ajax调用。 例如,如果我键入“ka”,它将使用参数“ka”对该API进行ajax调用,并返回带有该前缀的20个字符串。同样,如果我输入'kar',它将再次使用'kar'进行ajax调用,并返回20个前缀为'kar'的字符串


如果我没有指定所需的匹配数,那么我调用的API可以返回带有前缀的所有字符串。因此,我希望将第一个ajax调用的响应保存在某个地方,以便在连续按相同前缀的键时,不再对该外部API进行ajax调用

我认为不可能开箱即用,但您可以使用自己轻松实现它


您可以提供自己的函数作为源函数,只有当AJAX请求没有缓存以前请求的响应时,它才会执行AJAX请求。

但我认为只有缓存才有帮助,因为对于不同的前缀,会出现不同的字符串集,就像我在autosuggest下拉列表中键入'kar'时,它不应该给我任何前缀为'kab'的字符串。如果我错了,请更正。您可以缓存对“ka”的所有响应,而不是在搜索“kar”时,在缓存中循环并仅选择以“kar”开头的内容。如果你在速度方面遇到了麻烦,我相信你可以用它来加快速度。但是,如果你在“ka”下面,比如说几百个,它应该足够快了。你可以缓存第一个字母,然后循环其他字母。。。但如果你想要最快的速度,trie会是你的选择