Как лучше всего включать данные на HTML-страницу? Данные не читаются человеком и будут обработаны сценарием после загрузки страницы. Я могу придумать следующие варианты:
Использование атрибутов class и title для скрытых / пустых элементов <div> или <span> на странице
JSON в элементе <script> внизу страницы
Загрузите данные через XMLHttpRequest после загрузки страницы
Острова данных XML
Кажется, что все эти методы имеют недостатки, поэтому я хотел бы знать, что вы думаете.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я бы пошел с JSON. Или какой-нибудь другой код JavaScript, если для этого есть причина. Это будет проще всего для сценария, и оно ограничено только тем, чем ограничен сам сценарий.
Да, мне этот способ нравится больше всего. Я волновался, что это по сути будет похоже на помещение данных в глобальную переменную, но чем больше я думаю об этом, тем больше он ничем не отличается от других методов. Спасибо
Я бы использовал JSON в элементе <script>. Собственно, я бы сделал это реальным сценарием. Браузер будет анализировать и оценивать JSON, поэтому воспользуйтесь возможностью, чтобы сохранить его в какой-либо переменной.
Скрытие элементов с помощью CSS - дело хрупкое, поскольку некоторые клиенты (не обязательно браузеры, как думают поисковые системы) могут по-прежнему видеть их как часть данных страницы.
Загрузка данных через XHR после загрузки страницы - это нормально, но это не совсем ответ на вопрос. Это также немного медленнее, поскольку требует дополнительного обхода сервера (подумайте о своих антиподовых пользователях, для них очень важна низкая задержка).
Острова данных XML: я не уверен, о чем вы имеете в виду, но похоже, что это может вызвать много жалоб валидатора и что может быть хрупким в том строковом узле, который может отображаться браузером.
Итак, сохранение данных в элементе <script> звучит как самый простой, безопасный и наиболее подходящий способ ответить на вопрос.
Спасибо. Сделать его реальным сценарием, безусловно, было бы самым чистым, но в этом случае это потребовало бы выполнения двух циклических обращений к базе данных для одного и того же набора записей (один раз для генерации html и один раз для файла сценария), когда я мог бы уйти с одним если я храню данные в элементе скрипта.
Я полностью согласен с тем, что размещение данных в отдельном файле сценария - лучший подход, но вы знаете, что это также повлечет за собой дополнительный обход http, в отличие от размещения данных непосредственно на странице. Конечно, можно кэшировать отдельный файл, но то же самое можно сделать и с вызовом XHR.
Не понимаю, почему вы все говорите о файлах сценария. Я говорю о встроенном скрипте.
Я согласен. Кроме того, он на порядок быстрее, чем XML. Загрузите свой JSON через Ajax, чтобы он оставался «скрытым».