JQuery лучший способ получить JSON с AJAX - PullRequest
1 голос
/ 23 октября 2010

Я занимаюсь разработкой интернет-магазина, и клиент хочет AJAX.Я думаю, что это плохая идея, потому что она будет медленной.

Однако при просмотре продуктов слева есть некоторые фильтры.Когда пользователь выбирает фильтр, некоторые другие должны быть отключены.

Например, могут быть куртки как для мужчин, так и для женщин, но красный цвет доступен только для женщин, поэтому, когда пользователь щелкает мужской, красный фильтрдолжен быть отключен.

Мне интересно, какой лучший способ добиться этого.Я не стал бы использовать ajax для этого, просто загрузил бы все продукты категории и отфильтровал их с помощью Javascript, но я не могу, потому что я должен использовать ajax.

Так я должен сделать отдельный вызов, как .getJson('filters.php.....', currentFilters, callback)?а затем решить, какие фильтры будут отключены?(Это требует выполнения большего количества запросов к базе данных)

Или возможно ли включить на страницу результатов что-то вроде этого:

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

Интересно, все ли браузеры будут выполнять этот код.Любое другое предложение?

1 Ответ

1 голос
/ 23 октября 2010

Оба будут работать нормально, но все зависит от размера данных.

Другой метод - фильтровать результаты непосредственно на странице, например (скрыть несопоставленные элементы):

Быстрый пример:

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

Это будет фильтровать мгновенно и без необходимости многократного вызова базы данныхно, как я уже сказал, все зависит от размера данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...