2014-10-05 63 views
0

我一直在学习JAVA web开发,并且对Servlet,JSP有很好的处理,并且熟悉AJAX/CSS/Javascript。在J2EE应用程序中的排序和过滤

我在很多网站上看到的一件事是能够对网页上的项目列表(例如店面中的项目)进行排序和过滤。例如,如果我正在查看鞋子列表,我可以过滤并仅显示特定尺寸的可用尺寸,然后按最高价到最低价排序。

我看到,在大多数情况下使用AJAX,但我的问题是,就后端而言,我假设数据库没有被查询每次做排序和过滤,所以什么是一些技术来完成这个?

对象是否存储在会话中,然后在进行AJAX调用时,过滤参数作为请求的一部分发送,servlet执行过滤并返回结果?有没有一种模式通常用于这个?

回答

1

它取决于数据集。对于小数据集,可以说,向客户端返回单个JSON请求,并在JavaScript中进行过滤/排序。

对于大型数据集,您通常会让服务器进行筛选和排序,这样您只需要传输一小部分结果。例如,如果要从一千个产品列表中显示10个产品,则需要进行服务器端过滤/分类以保持数据传输的小型化。

将结果存储在(http)会话中似乎对我来说是个坏主意,因为会话的大小有限。如果您关心速度,您可能需要查看专用缓存解决方案(如memcache)。

+0

我会同意在servlet上进行排序,但就数据而言,如果数据未被缓存,是否需要将原始数据集存储在用户会话中?这样当过滤选项通过AJAX请求传递时,servlet知道哪些对象正在排序? – user1154644 2014-10-05 14:31:41

+0

如果无法重建对象的原始列表,例如通过重复数据库查询),那么是的。但我很少想到实际情况下的用例,并且没有可用的解决方法。 – 2014-10-05 16:01:12

相关问题