2014-03-06 90 views
0

首先,我目前的状况迅速解释,说明在筛选结果的数量:最佳方式使用Ajax

我的网页包含的(约40%,分类)过滤器列表和400多个产品的列表。

我得到的使用Ajax产品清单。默认显示20种产品,但当您滚动到底部时,会添加更多产品。用户可以通过单击所需的选项来过滤结果。这就像简化的ebay。唯一不同的是,当我点击过滤器时,我不重新加载页面,而是使用Ajax来获取我的产品。现在

,eBay已经旁边的每一个过滤选项,显示的结果,如果你单击该选项,你会得到量这些数字。我的问题是,显示这些数字的最佳方式是什么?

我的方法是为每个过滤器选项运行sql查询(SELECT COUNT(id) FROM sometable WHERE filter='something')。但是这意味着我必须在加载时运行约40个查询,并且每次用户单击一个选项(使用Ajax)。这似乎是沉重的服务器负载,还是我错了?

+0

如果你已经在使用Ajax我假设你使用JSON,为什么不把过滤和在本地JavaScript计数? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter,然后使用.length计算结果? –

+0

目前我使用Ajax调用PHP脚本,该脚本返回我的产品。载入20个产品(sql查询:'LIMIT 0,20')。你建议我加载所有的产品,把它们放在一个数组中,并使用JavaScript过滤? PS。是的,我正在使用json – RobinvdA

+0

如果您想要计算SQL中的可用产品,那么您需要按照您的建议进行操作,这非常有效。只有通过存储过程才能提高效率。 –

回答

0

我和我的第一种方法去,但现在我使用UNION查询来获得所有计数。这样我只需要为每个过滤器运行1个查询而不是1个查询。