Эффективность, которая будет лучшим решением? Вот очень маленький пример. PHP-скрипт возвращает число в jQuery, которое необходимо проверить, если оно равно 1
, на странице должно быть указано «1 человек», кроме «X человек».
Было бы быстрее, если бы скрипт PHP выполнил эту проверку и вернул «х лиц», или для jQuery сделать это после получения номера?
Я предполагаю, что у вас есть другое дело, и это просто пример – упрощенно. Проверка очень маленькая, поэтому я сомневаюсь, что вы можете измерить разницу, но, допустим, у вас есть много этих проверок.
Как говорит @mkoryak, jQuery является клиентским, а PHP – сервером. Если 10 ^ 5 пользователей запрашивают это, вы можете увидеть некоторую разницу, если позволить jQuery сделать это: каждый делает это один раз (и не видит разницы), но ваш сервер получает меньше 10 ^ 5 чеков. Напротив, ваш сервер, вероятно, намного быстрее, чем ваш клиент, поэтому для каждого клиента (с несколькими или даже с одним клиентом) может быть выполнено несколько расчетов на одном компьютере (так что PHP будет вашим выбором).
Как замечает @slebetman: для небольшого числа клиентов серверный код обычно быстрее. Для очень большого количества клиентов разгрузка на клиентский код может значительно повысить производительность. Здесь вы найдете ответ @scunliffe: протестируйте свое решение с помощью stresstest!
Правильный ответ всегда – Test / Benchmark it. Таким образом, вы точно знаете, что лучше.
Тем не менее, если вы делаете базовое сравнение PHP (серверного языка) с jQuery (на стороне клиента), серверная сторона должна быть быстрее. Однако это всегда будет зависеть от того, какую логику вы пытаетесь обработать.
Я действительно не думаю, что это вопрос скорости (хотя PHP, скорее всего, будет быстрее, если он работает на очень медленном сервере, а клиентская машина невероятно быстро), это скорее вопрос того, что более подходит .
В этом случае я бы пошел на PHP, так как нет никаких оснований для этого изменения в браузере после загрузки страницы (и jQuery и т. Д.).
В качестве общего совета – если вы не пытаетесь добавить значение к пользовательскому интерфейсу «по умолчанию» (то есть: без JavaScript), используя дополнительные «украшения» (например, слайд-шоу и т. Д.), Которые грамотно деградируют, сделайте это на сервер.)
jquery работает на клиенте, php работает на сервере. вы не можете сравнить скорость 2, так как один даже не запускается, пока другой не будет закончен.
делать все это в php
Это будет зависеть от вашего серверного оборудования, но я думаю, что для общей производительности вашего сайта лучше делать такие «украшения» на стороне клиента.
edit: Кроме того, у вас меньше данных для отправки клиенту.
Не имеет значения, действительно – узкие места производительности, скорее всего, будут в другом месте.
Я бы предпочел сделать это на сервере, так как поддержка браузеров, не относящихся к JS, снова важна (что связано с ограниченными мобильными устройствами, паутинами и еще много чего).
Предполагая, что число исходит от ресурса на вашем веб-сайте OWN (а не какой-то другой сайт, который вы разбираете): PHP будет быстрее.
Если это значение с другой страницы, я все же верю, что PHP быстрее (используя cURL / fopen [если сайт разрешает это] / и т. Д.). Вы говорите о разнице в чем-то, выполняемом до того, как страница будет передана пользователю, или нажав на загрузку пользователя, и в ожидании загрузки их страницы, а затем заполнив поле.
Реально, однако, это зависит только от того, как вы хотите, чтобы пользователь работал. Вы хотите, чтобы он был бесшовным или загружался как можно меньше и основывался на нем при загрузке страницы?
Я думаю, что вы рассматриваете производительность по функциональности … Позвольте мне сказать, что PHP является SERVER-SIDE, а jQuery – КЛИЕНТ-СТОРОНА. Время выполнения PHP зависит от архитектуры вашего сервера и конфигурации; jQuery основан на возможностях компьютера вашего клиента. jQuery также не работает в старых браузерах или браузерах с отключенным javascript. PHP предоставляет стандартный HTML, поэтому все браузеры должны отображать его одинаково (очевидно, это не обсуждение проблем дизайна и совместимости).