我已经用PHP实现了Jquery自动完成器。我注意到当我输入一个字母时,给出结果需要2秒多。有没有办法提高响应速度?我们可以在PHP中使用应用程序缓存吗?
如果您需要更多信息,请告诉我们。
答案 0 :(得分:2)
除非你在客户端Javascript代码中没有意外地犯了某种错误,否则没有其他方法可以大大加快响应速度,而不是试图提高服务器端脚本响应的速度。
最有效的方法(在速度方面给出最佳结果)遗憾的是不是很简单:每次自动完成程序触发时,不是从数据库中获取结果,而是从某种基于内存的缓存中获取数据,例如Memcached或Redis。这当然需要某种措施来保持缓存与数据库中的数据一致,因此您的自动填充不会返回过时的结果。
答案 1 :(得分:1)
您可以使用浏览器localstorage
一次保存服务器中的数据。然后,每次在自动填充字段中写入内容时,都会查询此存储而不是PHP脚本。
如果您有一个大型数据集但又不想将其加载到localstorage
中,则可以使用memcached
或redis
来缓存数据库查询。
此外,您可以缓存类以减少PHP脚本的生成时间。
答案 2 :(得分:1)
使用自动完成功能进行搜索的最佳方法是给minLength = 3或4,这样它就不必搜索整个数据库,只会导致浏览器挂起,也会耗费时间..
答案 3 :(得分:0)
使用预先填充的列表。 检查此插件http://jqueryui.com/autocomplete/