我正在实现一个带有结果页面支持分页的复杂搜索模块。提供的大多数示例只是将pagenumber作为Index操作的参数传递,并且每次用户点击不同的页码时,操作都使用pagenumber执行查询。
我的问题是我的搜索比简单的pagenumber更多的标准(超过10个标准)。因此,我想在用户首次提交后保留搜索条件或搜索结果数据,这样我只需要来回传递页面编号。
所以我不知道哪种方式更好:保留搜索标准,所以每次点击新页面时,调用控制器操作都会再次搜索?或保留搜索结果数据,因此应用程序不需要反复查询数据库,但保留的数据会很大。如果您有任何想法,如何实施?谢谢你的到来。
答案 0 :(得分:3)
在查询字符串中保留搜索条件通常是最好的。它将允许用户为搜索添加书签。
保留搜索结果数据会引发潜在陈旧数据的问题,并在服务器端消耗更多资源。无论如何,这对大型数据集都无法正常工作,因为您一次只能选择一个页面,因此当用户导航到下一页时,内存中的缓存不会有太大帮助。
答案 1 :(得分:0)
/ 我建议您为每次搜索生成一个唯一键,并使用该唯一键存储包含内存或DB中所有搜索条件的对象。然后传递查询字符串上的唯一键。 /
所以你的意思是,用DB中的唯一键保存搜索条件,随时我再次需要搜索结果(包括更改页面索引),从查询字符串中获取唯一键,再次运行查询。那你的建议吧?非常感谢您的建议。非常有帮助。