2010-10-23 5 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

Это хорошо, но проблема в том, что клиент хочет разбиения на страницы ... Я думаю, что это очень сложно реализовать это и разбиение на страницы WHILE, поддерживающие пользователей, не поддерживающих javascript ... – GorillaApe

+0

Для подкачки есть много jquery pluigns, которые могут обрабатывать его , например http://www.j-dee.com/2008/12/22/jquery-pager-plugin/ - и для пользователей, не поддерживающих javascript, вы не можете использовать какое-либо решение ajax (по просьбе клиента) без javascript в любом случае , – Mouhannad

Смежные вопросы