【问题标题】:Using AJAX and PHP to create a realtime search of server side files [closed]使用 AJAX 和 PHP 创建服务器端文件的实时搜索 [关闭]
【发布时间】:2015-01-25 15:52:46
【问题描述】:

我是 PHP 和 Ajax 的新手。我想在我的页面上创建一个实时搜索框,它将搜索我服务器上所有 html 页面的元标记关键字,并为匹配的文件生成链接列表。

这看起来是一个可行的选择吗?还是会太慢,因为它会使用 scandir 来获取 html 列表,然后从列表中的每个文件中提取元标记并查找匹配项?该站点最终可能会增长到数百页,因此文件数量是一个问题,但我不确定 Ajax 和 PHP 的速度会有多快。

此外,理想的情况是关键字的部分匹配,因此“in”将匹配昆虫和国际。

【问题讨论】:

  • 您的意思是“自动完成”?这通常是一个预先生成的列表。您是否在数据库中分别拥有所有元标记关键字?那么您可以轻松地实时完成。如果您想先搜索数据库中的完整网页,那么它可能会太慢(而且效率非常低)。 pontikis.net/blog/jquery-ui-autocomplete-step-by-step
  • 为了获得最高性能的解决方案,您需要将工作交给专为搜索文件内容而设计的工具。见:stackoverflow.com/a/40773407/65732

标签: php ajax file search


【解决方案1】:

ajax 会足够快,PHP 也一样,我以前也这样做过,

但是要评论您的概念。

我会使用 sql 数据库(例如 mysql)来实际执行搜索,而不是使用 scandir 然后打开每个页面(然后扫描元标记。)我认为这将涉及您然后进一步解析页面上的文件.

搜索代码会简单得多,执行速度也会快一个数量级。尤其是在多个用户强制你的代码同时调用 scandir 的情况下(磁盘访问总是最慢的 IO 形式。)

然后您可以编写一个 php 脚本来执行您的“scandir”方法,然后更新数据库。

除此之外,您还可以选择通过 JSON 转储您的“元标记表”,并在未来完全在客户端执行搜索。

【讨论】:

  • 感谢您的回复。但是,我对 JSON 的熟悉程度为零,而且我刚刚开始学习 Ajax。除了对象数据定义的可读性之外,我没有看到 JSON 与使用 XmlHtmlRequestObject 相比的优势。我错了吗?
  • XmlHttpRequest 只是简单的传输媒介,里面的数据编码方法是一个单独的问题,JSON 非常简单,可以自动神奇地使用(php 的 json_encode / json_decode 命令),javascript 会处理返回的数据立即作为数组/对象(这也是有益的),因为它显着减少了您的开发时间并提高了代码的可读性。使用 XML 作为内容编码既难编码又难解码
猜你喜欢
  • 2014-03-28
  • 2020-01-26
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 2014-06-28
相关资源
最近更新 更多