Задать вопрос
@noname90

Какой вариант будет работать быстрее для браузера?

Есть два варианта отдавать данные с сервера ajax запросом: html код либо json с созданием элементов на js, и последующая их вставка на страницу. Передается примерно 20-200 html элементов. Будет ли серьезная разница во времени обработки браузером?
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
Рекомендую выбирать решение опираясь не на скорость, которая, к слову, будет примерно одинаковой, а на структуру проекта.
Если проект большой или обещает таким быть, оцените сколько вы готовы вложить в железо. Если в этом месте будуте экономить, то не стоит возлагать функцию щаблонизации на сервер - отдавайте json.
Как я понимаю в вашем случае речь идет о динамических данных, которые рендерятся при каждом запросе. Если же этот json статичен или допустим обновляется раз в час, то вполне можно рендерить эту страницу на сервере раз в час.
Тут нужно только решить готовы ли вы жить с серверными инструментами шаблонизации в проекте или вам комфортнее шаблонизировать на клиенте. Другими словами многое зависит от выбранного вами фреймворка, если он вообще есть.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@imhuman
В наше время быстрого интернета, безлимита и мощных устройств разница, не думаю, что будет заметна. Я бы выбрал вариант с JSON и отрисовкой в браузере, чисто из любви к прекрасному.
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Для чистоты эксперимента положим, что способ вставки этой строки в документ одинаков, иначе сравнивать их некорректно.
Тогда, вся разница между этими вариантами - в том, что при отдаче json нужно его разобрать и сконкатенировать строку html.
Скорее всего, на компьютере в современном браузере разницы вы не заметите.

Но, конечно, самым правильным было бы выполнить профилирование ваших скриптов в условиях конкретной страницы. Выстрелить себе в ногу и убить производительность можно кучей разных способов, да и у браузеров поведение различается.
Ответ написан
Комментировать
Rou1997
@Rou1997
Здесь два фактора - длина ответа (пакета), и трудоемкость обработки скриптом, так вот, длина гораздо меньше критична, к тому же зависит как писать HTML и JSON, достаточно не использовать inline CSS и JS, чтобы пакет с HTML "весил" не намного больше, а то и меньше.
Что касается до качества архитектуры, например, статуса ошибки, который надо как-то передавать клиенту, то можно сделать "гибридный" формат, то есть HTML просто "завернуть" в JSON.
Это все в общем случае, а в каждом конкретном надо отталкиваться от задачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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