Дилемма эффективности: использовать AJAX или нет? - PullRequest
4 голосов
/ 04 ноября 2011

У меня есть сайт, который отображает список статей вместе с фильтрами категорий. Фильтры можно включать и выключать, и список статей будет корректироваться автоматически.

В настоящее время у меня так, когда щелкают фильтры, AJAX делает запрос к сценарию, который запрашивает базу данных на основе выбранных фильтров, а затем результаты выводятся пользователю.

Это неэффективный метод? Еще одна идея, которая у меня недавно возникла, заключалась в том, чтобы просто запросить базу данных для КАЖДОЙ статьи один раз при загрузке страницы. Тогда вместо выполнения запросов AJAX фильтры будут соответствующим образом переключать элемент отображения каждого сообщения.

Идея звучит намного лучше, чем использование AJAX, но я хотел бы получить другие мнения о методе в отношении эффективности и семантики.

Ответы [ 4 ]

2 голосов
/ 04 ноября 2011

все зависит от ваших конкретных номеров. Сколько у вас посетителей? Насколько тяжела целая страница для загрузки? Сколько секунд увеличивает загрузку вашей страницы, чтобы загрузить все статьи.

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

При этом ваше ajax-решение не является неэффективным и является лучшим решением, если количество статей увеличится.

2 голосов
/ 04 ноября 2011

Это действительно зависит от того, сколько у вас статей. Если их сотни или тысячи, вы, вероятно, сэкономите обработку, выполняя выборки через AJAX. В противном случае фильтрация на стороне клиента имеет больше смысла.

1 голос
/ 04 ноября 2011

Я думаю, это зависит от того, сколько строк вы пытаетесь кэшировать.Если оно меньше 1000, то я, вероятно, кеширую его, но если его больше, вы можете использовать AJAX.AJAX в целом неэффективен из-за ограничений перемещения данных по http.

0 голосов
/ 04 ноября 2011

Как вы делаете этот запрос?ПОЛУЧИТЕ с параметрами?

Если да, вы можете прочитать о лаке для его кеширования.Больше не беспокойтесь об этом.

Первый запрос будет кэширован в памяти.Другие никогда не будут касаться БД и файла сценария, только кэшированный ответ.

Сконфигурируйте лак, чтобы он истекал через 2 - 2 минуты и имел высокопроизводительный запрос (даже если миллионы запрашивают этот AJAX, в БД будет выполнен только один запрос)

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