如何启用“更多”搜索结果?

时间:2011-05-19 16:24:22

标签: php jquery html

我是Windows的C#开发人员,我知道不是很多关于网络编程。我用Java开发了一个特殊的搜索引擎。我想为它创建一个php界面。现在,我设法通过Web服务连接php和Java。我看了一些关于创建搜索引擎的教程,我对我应该做些什么有一些了解,但我不确切知道如何处理一些问题。这是我想要实现的场景:

带有搜索框的索引页面,用户在该页面中键入搜索查询,一些结果显示,如果用户向下滚动,则会显示更多结果(如Facebook)。当用户点击结果项的链接时,浏览器会打开另一个显示结果的页面(也在我的应用程序中)。

现在我所知道的是索引页面应该是一个HTML文件,其中包含一个PHP文件的Get方法。 我不知道的是如何启用“更多”结果?为此,我的php应该将包含以前结果的URL的数组发送到我的Java服务,获取结果,将它们添加到数组并等待。下次它应该使用这个数组。

请告诉我应该为我的应用使用哪种代码结构。

提前致谢。

编辑: 请求java服务器中的代码示例:

public String processQuery(String query, List<String> previousURLs);

这将是第一次这样调用:

processQuery("test", null);

假设它已经使用网址返回了2个结果:

http://www.bing.com
http://stackoverflow.com

这些将存储在一个数组中,第二次:

processQuery("test", previous);

这将返回将在页面末尾添加的新结果。

2 个答案:

答案 0 :(得分:2)

您需要使用AJAX(异步JavaScript和XML)请求。实际上,当用户向下滚动页面时,会触发请求以获得更多结果。你可能会做一些事情,比如缓存最后的结果id,知道从哪里得到下一批结果。你需要刷新你的javascript和jQuery,以便弄清楚如何实现所有这些 - 即触发请求,处理响应并将新元素附加到DOM。

执行此操作的示例网站是Duck Duck Go。当您滚动时,他们的搜索结果页面会动态添加新结果。确保你有Firefox + Firebug来检查页面,网络请求以及逐步调试(调试)正在运行的javascript。

答案 1 :(得分:1)