Я хотел бы встроить JSON в HTML. Самое элегантное решение, которое я нашел, использует script
-tag и тип mime media application/json
.
<script id="data" type="application/json">
{
"foo" : "bar"
}
</script>
Является ли это стандартным способом встраивания JSON? Если нет, есть ли риск с вышеупомянутым решением?
Причины использования встроенного JSON (вместо службы JSON-P):
- Небольшое количество JSON-данных
- Меньше HTTP-запросов
- Предпочтение для inline-JSON для данных в HTML-атрибутах
[UPDATE] Причина встраивания json.
У меня есть виджет галереи для сайта с очень высоким трафиком. Галерея может состоять из 100 изображений или более. Я показываю только одно изображение за раз, а остальные изображения будут загружены лениво. Однако информация (изображение src) для всех изображений будет отображаться в html при загрузке страницы. Существуют различные способы визуализации информации об изображении в html. Вместо использования JSON я мог бы также использовать атрибуты данных html, как показано ниже:
<li class="image" data-src="image-path.jpg">
<!-- image tag will be created here using javascript -->
</li>
приведет к:
<li class="image image-loaded" data-src="image-path.jpg">
<img src="image-path.jpg" />
</li>
Недостатком вышеупомянутого решения является дополнительная разметка. Я предпочел бы использовать JSON и Javascript-Templating, например doT.js.