javascript или php - что наиболее эффективно для обновления? - PullRequest
3 голосов
/ 10 февраля 2009

У меня есть несколько методов обновления в файле javascript, используемых для обновления моего ajax-приложения, например:

function updateByPk(layer, pk) {
   url = "get_auction.php?cmd=GetAuctionData&pk="+pk+"&sid="+Math.random();
   update(layer, url);
}


function updateByQuery(layer, query) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
   update(layer, url);
}

function updateByPage(layer, query, pg) {
   url = "get_records.php?cmd=GetRecordSet&query="+query+"&pg="+pg+"&sid="+Math.random();
   update(layer, url);
}

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

Ответы [ 4 ]

2 голосов
/ 10 февраля 2009

Пейджинг с преимуществами AJAX:

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

Пейджинг без преимуществ AJAX:

  • Кнопки Назад и Вперед будут работать в браузере
  • У вас может быть URL конкретной страницы (хотя вы можете сделать это и с AJAX, используя трюк page.php # pagenumber)
  • Возможно, немного легче написать и поддерживать
1 голос
/ 10 февраля 2009

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

Недостатком является то, что немного сложнее кодировать с хорошим пользовательским интерфейсом (добавление загрузочного счетчика и связанных элементов). И если у клиента отключен JavaScript, ваша страница разрывается. Так что на самом деле, вам нужны оба, если вы вообще делаете ajax. Впрочем, для Ajax легко выполнить код изящной деградации.

<a href="/search?term=foo&amp;page2" onclick="loadPageViaAjax(2); return false">
  Next
</a>

Это пример ссылки, которая будет работать даже без JavaScript. Если javascript включен, запускается onclick, происходит ajax и он останавливает следующую ссылку с return false. Если javascript отсутствует, онклик игнорируется, и ссылка идет как обычно.

1 голос
/ 10 февраля 2009

если я получу вопрос, то вы спрашиваете, лучше ли выполнять разбиение на страницы и тому подобное через Javascript + AJAX или через звонок на сервер?

Я бы лично сказал, что просто используйте запрос к серверу. AJAX является ненужным в подобных случаях, кроме как для фактора «bling» (да, это технический термин: P)

Если вы пишете приложение правильно, имея в виду специальные возможности, вы должны ДОЛЖНЫ написать бит «прямой вызов серверу» (если кто-то отключил Javascript и щелкнул по одной из ссылок «следующая страница») .

Наличие Javascript означает, что 1) у вас есть дополнительный код для поддержки. 2) ты ломаешь кнопку назад. Если вы реализуете только метод AJAX, у вас нет возможности получить доступ к данным на других страницах. И у вас нет простого способа связать его (скопировав адресную строку), если вы это сделаете.

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

0 голосов
/ 10 февраля 2009

Это зависит от вашего определения эффективности. Загрузка нового контента через AJAX приведет к уменьшению количества байтов, передаваемых по проводам, но может оказаться более напряженной на вашем сервере, если вы не можете кэшировать динамический контент в статические файлы (что, я полагаю, будет при перезагрузке страницы). Однако чрезмерное использование AJAX может сделать ваши страницы менее доступными для пользователей, чьи браузеры не поддерживают javascript (они существуют), и может помешать индексации ваших сайтов поисковыми системами. Лучшим сценарием обоих миров было бы позволить ссылкам указывать на перезагруженную страницу, но переопределять это поведение с помощью javascript для загрузки нового контента через AJAX.

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