2010-10-23 45 views
1

我正在開發一個eshop和客戶端想要ajax。我認爲這是一個糟糕的主意,因爲它會很慢。jQuery最好的方式來獲得JSON與AJAX

但是,在查看產品時,左側有一些過濾器。當用戶選擇一個過濾器時,應該禁用其他一些過濾器。

例如,可能會有男性和女性的夾克,但紅色僅適用於女性,因此當用戶單擊男性時,應禁用紅色過濾器。

我想知道哪個是實現這一目標的最佳方法。我不會使用ajax,因爲這只是加載類別的所有產品,並用Javascript過濾它們,但我不能,因爲我必須使用ajax。

所以我應該做一個單獨的電話,如.getJson('filters.php.....', currentFilters, callback)?然後決定哪些過濾器將被禁用? (這需要在數據庫中執行多個查詢)

或者是有可能在結果頁這樣的事情包括:

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

我不知道所有的瀏覽器是否會執行該代碼。任何其他建議?

回答

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

這將立即過濾,而不必多次調用數據庫,但正如我所說的,這一切取決於數據的大小。

+0

多數民衆贊成但不錯,但問題是,客戶希望分頁...我認爲這是很難實現這一點和分頁儘管支持非JavaScript的用戶... – GorillaApe 2010-10-24 22:22:23

+0

對於分頁,有很多jquery的插件,可以處理它,比如http://www.j-dee.com/2008/12/22/jquery-pager-plugin/ - 對於不支持JavaScript的用戶,您無法使用任何ajax解決方案(按照客戶端的要求)不用JavaScript 。 – Mouhannad 2010-10-24 23:14:31

相關問題