JQuery против PHP - Сравнение производительности - PullRequest
1 голос
/ 17 января 2011

С точки зрения производительности, что было бы лучшим решением?Вот действительно маленький пример.PHP-скрипт возвращает число в jQuery, которое необходимо проверить, если оно 1, на странице должно быть написано «1 человек», иначе «X человек».сделать эту проверку и вернуть "x лиц", или jQuery сделать это после получения номера?

Ответы [ 8 ]

9 голосов
/ 17 января 2011

Я предполагаю, что у вас другое дело, и это просто пример - слишком упрощенный.Чек очень маленький, поэтому я сомневаюсь, что вы можете измерить разницу, но допустим, у вас есть МНОГО таких проверок.

Как говорит @mkoryak, jQuery - это клиент, а PHP - сервер.Если 10 ^ 5 пользователей запрашивают это, вы можете заметить некоторую разницу, позволяя jQuery сделать это: каждый делает это один раз (и не видит разницы), но ваш сервер выполняет 10 ^ 5 проверок меньше.С другой стороны, ваш сервер, вероятно, намного быстрее, чем ваш клиент, поэтому многие вычисления для одного клиента (с несколькими или даже с одним клиентом) могут быть лучше выполнены на сервере (так что PHP будет вашим выбором).

Как заключает @slebetman: для небольшого числа клиентов код на стороне сервера обычно быстрее.Для очень большого числа клиентов разгрузка работы на клиентский код может значительно повысить производительность.Вот где приходит ответ @scunliffe: проверь свое решение с помощью стресс-теста!

7 голосов
/ 17 января 2011

Правильный ответ всегда - Test / Benchmark it. Таким образом, вы точно знаете, что лучше.

Тем не менее, если вы проводите базовое сравнение PHP (серверный язык) с jQuery (клиентский язык), серверный должен быть быстрее. Однако это всегда будет зависеть от того, какую логику вы пытаетесь обработать.

3 голосов
/ 17 января 2011

Я на самом деле не думаю, что это вопрос скорости (хотя PHP, вероятно, будет быстрее, если он не работает на очень медленном сервере, а клиентский компьютер невероятно быстр), это больше вопрос того, что более уместно .

В этом случае я бы выбрал PHP, так как на самом деле нет причин вносить это изменение в браузер после загрузки страницы (и jQuery и т. Д.).

В качестве общего совета - если вы не пытаетесь повысить ценность пользовательского интерфейса «по умолчанию» (т.е. без JavaScript), используя дополнительные «украшения» (такие как слайд-шоу и т. Д.), Которые изящно ухудшаются, это на сервере.)

0 голосов
/ 17 января 2011

Я думаю, вы думаете о производительности, а не о функциональности ... Позвольте мне в предисловии сказать, что PHP на стороне сервера, а jQuery на стороне клиента. Время выполнения PHP зависит от архитектуры и конфигурации вашего сервера; JQuery основан на возможностях компьютера вашего клиента. jQuery также не работает в старых браузерах ИЛИ браузерах, в которых отключен JavaScript. PHP отображает стандартный HTML, поэтому все браузеры должны отображать его одинаково (очевидно, это не обсуждение вопросов дизайна и совместимости).

0 голосов
/ 17 января 2011

Предполагая, что число исходит от ресурса на вашем СОБСТВЕННОМ веб-сайте (это не значение какого-либо другого веб-сайта, который вы анализируете): PHP будет быстрее.

  • Нет накладных расходов (выполняется при выполнении страницы)
  • Не ожидает события загрузки страницы, чтобы затем выполнить запрос AJAX и затем проанализировать его

Если это значение с другой страницы, я все еще верю, что PHP работает быстрее (используя cURL / fopen [если сайт это позволяет] / и т. Д.). Вы говорите о том, что выполняется до того, как страница будет передана пользователю, и что вы загружаете ее пользователю и ждете, пока загрузится его страница, а затем заполняете поле.

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

0 голосов
/ 17 января 2011

Не имеет значения, на самом деле - узкие места в производительности, вероятно, будут где-то еще.

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

0 голосов
/ 17 января 2011

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

редактирование: Кроме того, у вас меньше данных для отправки клиенту.

0 голосов
/ 17 января 2011

jquery запускается на клиенте, php запускается на сервере. Вы не можете сравнить скорость 2, так как один даже не запускается, пока другой не закончится.

сделать все это в php

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