【发布时间】:2013-01-01 23:19:46
【问题描述】:
我想在 HTML 中嵌入 JSON。我发现最优雅的解决方案是使用script-tag 和mime 媒体类型application/json。
<script id="data" type="application/json">
{
"foo" : "bar"
}
</script>
这是嵌入 JSON 的标准方式吗?如果没有,上述解决方案是否存在风险?
使用内联 JSON(而不是 JSON-P 服务)的原因:
- 少量 JSON 数据
- 更少的 HTTP 请求
- 内联 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 模板引擎,例如 doT.js。
【问题讨论】:
-
你打算如何处理你正在“嵌入”的 json?
-
您最好将 json 作为对象存储在 javascript 中。没有理由嵌入 json,除非您以某种方式避免使用 javascript 再次访问该 json。
-
JSON 是一种传输数据的方法。这不是应该为自己而使用的东西。尤其是在处理 JavaScript 时,实际上没有理由更喜欢 JSON(JavaScript Object Notation)而不是实际的 JavaScript 对象。
-
您要嵌入的是静态内容吗?或者您会提供预先填充了嵌入式 JSON 的 HTML 文件吗?否则我看不到将 JSON 直接嵌入 HTML 的任何优势
-
@PeeHaa:我已经用一个理由更新了我的问题。
标签: javascript html json inline dot.js