#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть вызов ajax, который в данный момент возвращает необработанный html, который я вводю на страницу.
Теперь моя проблема в том, что в некоторых ситуациях мне нужно вернуть значение count вместе с необработанным html, и если это значение> 10, мне нужно запустить другую операцию jquery, чтобы сделать что-то видимым.
Лучшим подходом здесь было бы вернуть json, не так ли? Итак, я могу сделать:
jsonReturned.counter
jsonReturned.html
Вы согласны?
Кроме того, больше всего из любопытства, является ли json более дорогим с точки зрения производительности? Это всего лишь простой объект со свойствами, но просто запрашивающий.
Ответ №1:
Этот вопрос оставляет за собой некоторую свободу действий, но, на мой взгляд, возврат JSON вместо необработанного HTML не вызывает беспокойства по поводу эффективности. Как вы заявили, вы можете легко возвращать несколько сообщений без необходимости дополнительного синтаксического анализа (например, у меня часто есть статус, сообщение и данные).
Я не приводил никаких цифр, но могу сказать вам, что использовал JSON через AJAX в ситуациях с очень интенсивным трафиком (миллионы запросов) без каких-либо проблем с эффективностью.
Ответ №2:
Я согласен, json — это правильный путь. Нет сомнений, что это снижение производительности. Вопрос в том, является ли это незначительным попаданием? Мое мнение таково, что это незначительно. В наши дни Javascript довольно быстр в браузере. Все должно быть в порядке.
Ответ №3:
JSON, вероятно, будет более компактным, чем HTML, поскольку пары скобок / кавычек ВСЕГДА будут более краткими, чем наименьшие возможные комбинации тегов. {}
/ []
, ""
v.s. <a></a>
. 2 символа v.s. 7 — это победа в моей книге. однако, если ваши данные требуют огромного количества экранирования с помощью
, то JSON будет чистой потерей и может удвоить размер любой заданной строки.
Комментарии:
1. Я думаю, что OP означает иметь HTML в качестве свойства возвращаемого объекта JSON, и в этом случае он должен быть строго более подробным.
Ответ №4:
Источники дополнительных накладных расходов включают
- Размер загрузки и время загрузки анализатора JSON для старых браузеров
- Время синтаксического анализа JSON.
- Больший размер загрузки для содержимого HTML, поскольку строка JSON должна содержать HTML-строку плюс кавычки, по крайней мере.
Единственный способ узнать, важны ли они для вашего приложения, — это измерить их. Ни один из них не является явно большим, и ни один из них не превышает O (n).