jQuery使用ajax获取JSON的最佳方法

时间:2010-10-23 16:20:57

标签: javascript jquery ajax json

我正在开发一个eshop,客户想要ajax。我认为这是一个坏主意,因为它会变慢。

然而,在查看产品时,左侧有一些过滤器。当用户选择过滤器时,应禁用其他过滤器。

例如,男性和女性都可能有夹克,但红色仅适用于女性,因此当用户点击男性时,应禁用红色过滤器。

我想知道哪种方法是实现这一目标的最佳途径。我不会使用ajax只是加载该类别的所有产品并使用Javascript过滤它们但我不能,因为我必须使用ajax。

那么我应该像.getJson('filters.php.....', currentFilters, callback)那样单独打电话吗?然后决定禁用哪些过滤器? (这需要在数据库中执行更多查询)

或者可以在结果页面中包含以下内容:

<script type=text/javascript>
    var data={jsondatagoeshere};
</script> 

我想知道所有浏览器是否都会执行此代码。还有其他建议吗?

1 个答案:

答案 0 :(得分:1)

两者都可以正常工作,但这一切都取决于数据的大小。

另一种方法是直接在页面上过滤结果,如(隐藏不匹配的项目):

快速举例:

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();
});

这将立即过滤,而不必多次调用数据库,但正如我所说,这一切都取决于数据的大小。