我正在开发一个eshop,客户想要ajax。我认为这是一个坏主意,因为它会很慢。
但是,在查看产品时,左侧有一些过滤器。当用户选择一个过滤器时,应该禁用其他一些过滤器。
例如,可能有男性和女性的夹克,但红色仅对女性可用,因此当用户单击男性时,红色滤镜应该被禁用。
我想知道实现这一点的最好方法是什么。我不会使用ajax,只是加载所有的产品类别,并使用Javascript过滤它们,但我不能,因为我必须使用ajax。
那么,我是否应该像.getJson('filters.php.....', currentFilters, callback)
一样进行单独的调用?然后再决定禁用哪些筛选器?(这需要在数据库中执行更多的查询)
或者,是否可以在结果页面中包含类似以下内容:
<script type=text/javascript>
var data={jsondatagoeshere};
</script>
我想知道是否所有的浏览器都会执行这段代码。还有其他建议吗?
发布于 2010-10-24 00:44:54
两者都会工作得很好,但这完全取决于数据量有多大。
另一种方法是直接在页面上过滤结果,如(隐藏不匹配的项目):
快速示例:
html
<ul>
<li>Item1 <span>tag1, tag2</span></li>
<li>Item2 <span>tag1, tag3</span></li>
</ul>
css
span { display:none }
jquery
$(".filter").click(function() {
$("ul > li").hide().filter(function() {
return $("span", this).text().indexOf("tag1") >= 0;
}).show();
});
这将立即过滤,而不必多次调用数据库,但正如我所说的,这完全取决于数据的大小。
https://stackoverflow.com/questions/4004924
复制相似问题