@Vlad_isLove

Будет ли улучшение производительности, если выводить статьи не в php коде, а передавать их в ajax?

Что меньше нагружает сервер, если выводить статьи из php скрипта через echo формируя html структуру статьи в echo и вставляя данные из массива в неё. Или передавать массив с данными через AJAX и формировать и выводить статьи средствами JS? И насколько одно эффективней другого?

P.S. Вот конкретный пример, можно возвращать новые статьи так:
for ($i=0; $i < count($articles)-1; $i++) {
    echo '<article>
            <img src="'.$articles['img'].'" alt="?">
            <p>'.$articles['name'].'</p>
            <div>'.$articles['text'].'</div>
            <span>'.$articles['date'].'</span>
        </article>';
}

Или так:
echo $articles;
В обоих случаях PHP скрипт вызывается через AJAX, но в первом варианте тратится время на склеивание текста и значений массива и на передачу готового текста клиенту. А во втором клиенту передается просто массив который формируется в html уже на стороне клиента, что уменьшает объем передаваемых данных. Уменьшит ли второй вариант нагрузку на сервер?
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 3
dollar
@dollar
Делай добро и бросай его в воду.
В общем случае без разницы для сервера. Потому что это не ахти какая нагрузка. Ведь данные и так в массиве. Разве много вычислений нужно, чтобы переставить куски массива? (Вопрос к вам, кстати, потому что алгоритм может быть и правда сложным, но вряд ли у вас такое).

Для клиента массив однозначно не желателен. Во-первых, это дополнительная работа, когда её могло бы и не быть, т.е. страница, возможно, медленнее загрузится. Во-вторых, у клиента вообще может быть отключен JS, либо может не сработать по каким-то причинам (например, ложное срабатывание блокировщика рекламы). Поисковики тоже не обрадуются встроенному в страницу JS, хоть и скушают.

Ну и главное, это наличие у каждой статьи своего уникального URL. Говорю на всякий случай, потому что если вы додумались до того, что смена статьи будет происходить через ajax без смены адреса, то это однозначно плохо. Скорее всего, вы это и так понимаете, поэтому ответ прежний - в общем случае практически без разницы php или ajax.

P.S. Что реально лучше перекладывать на клиента, точнее давать в виде дополнительной фичи - так это сортировку таблиц с данными в статье. Опять-таки, таблицы должны отображаться без JS. Но при наличии JS их можно сортировать сразу плюс давать пользователю кнопки сортировки, которая будет происходить локально, без перезагрузки страницы. Это и приятно, и снимает нагрузку с сервера (по количеству соединений).
Ответ написан
Загрузка контента через AJAX может стать проблемой для поисковых роботов, они скорей всего не смогут проиндексировать это.
Ответ написан
Комментировать
@grinat
Вообще нагрузку уменьшит и сильно, если там вокруг много разных блоков типа новости, профиль, то можно легко прикинать на сколько. Плюс не надо шаблон собирать и рендерить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы