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