如何在执行第二次搜索时保留第一个搜索数据

时间:2014-09-30 18:27:31

标签: java struts spring-jdbc

我需要实现逻辑,其中我的逻辑失败。让我解释一下这个功能。

a)屏幕上有两个搜索,SearchA和SearchB。当我执行SearchA时,它给了我一些结果,我在屏幕上显示。 b)当我执行SearchB时,应用程序将搜索数据并显示在屏幕上。

预期结果

When SearchB is performed both the search results should be show on the application.

结果

When searchB is performed the search result of SearchA is disappearing and only SearchB is displaying. Visa Versa

请不要建议将搜索结果放入会话中。它是一个巨大的数据(数百万条记录)。所以请建议任何其他适当的实现。

1 个答案:

答案 0 :(得分:0)

我假设搜索,结果页面都要重新加载,搜索结果是请求范围,第一次响应在第二次搜索时被删除(SearchB)

您可以使用Ajax而不是整页刷新来绘制页面的结果部分,从而保留搜索结果。

假设您有2个div SearchAResults和SearchBResults。 SearchA将从服务器获取结果后执行ajax请求并填充SearchAResults div。目前没有页面加载。同样,SearchB只会绘制SearchBResults。

此外,如果内存(而不是设计)是阻止您将结果存储在会话中的唯一标准,并且搜索结果需要重复使用 - 您可以查看一些外部缓存解决方案,例如Memcached,其中只有专用服务器处理这些庞大的数据。