php - 服务器端与客户端自动完成

标签 php jquery ajax autocomplete

标题已经说明了一切。

我有一个文本字段,我想在其中自动完成。假设这是电子商务解决方案所需的产品搜索字段。产品在数据库中。现在,当用户在文本字段上按键时,我可以使用 ajax 加载列表(也许使用 jquery 的自动完成功能)。我还可以在从数据库加载页面之前加载所有产品,并将其作为下拉菜单传递(可能是 select2)。 我想知道哪种方法合适。我的情况的一些特点是:

  1. 用户始终会至少搜索 5 种产品。
  2. 产品数量可能 > 10000。

我读了一篇来自this place的文章这建议我使用服务器端解决方案。不过,我想了解更多关于这个问题的意见。

最佳答案

这实际上取决于您为产品加载的数据;如果只是名称(并且您没有很长的名称),10000 是我个人考虑的限制,您可以预先加载它们并简化其他所有内容(除非产品列表预计会增长很多)。

替代方案意味着更加注意发出请求的方式;一些常见的最佳实践是仅在输入至少两个字符后才开始搜索,并且不在每次按键时发出请求,而是等到用户暂停几毫秒;这样,您就不会用在返回时已经无用的请求淹没您的服务器。这种技术通常称为去抖动/去抖动。当然,如果您使用具有自动完成组件的 UI 库,则该组件可能会为您处理。

关于php - 服务器端与客户端自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093502/

相关文章:

javascript - iOS 6 上的 Safari 是否缓存 $.ajax 结果?

php - 如何向 Laravel 5.0 框架发送 Ajax 请求?

javascript - 流程上的 Bootstrap Multiselect 更新选项列表

php - 在 For 循环中运行查询

jQuery 选择并拖动 Chrome 问题

javascript - 在 JQuery 中捕获表单输入

jquery - 使用 jQuery 检测何时加载新推文?

javascript - ajax封装请求需要等待累计结果

php - 如何加载 Mediawiki 标签扩展的 css?

php - laravel 5.5在构造函数中获取用户详细信息