一尘不染

在DOM中嵌入任意JSON的最佳实践?

json

我正在考虑像这样在DOM中嵌入任意JSON:

<script type="application/json" id="stuff">
    {
        "unicorns": "awesome",
        "abc": [1, 2, 3]
    }
</script>

这类似于将任意HTML模板存储在DOM中以供以后与JavaScript模板引擎一起使用的方式。在这种情况下,我们以后可以检索JSON并使用以下方法进行解析:

var stuff = JSON.parse(document.getElementById('stuff').innerHTML);

这有效,但这是最好的方法吗?这是否违反任何最佳做法或标准?

注意:我不是在寻找在DOM中存储JSON的替代方法,我已经决定这是解决我遇到的特定问题的最佳解决方案。 我只是在寻找最佳方法。


阅读 217

收藏
2020-07-27

共1个答案

一尘不染

我认为您的原始方法是最好的。HTML5规范甚至解决了这种用法:

“当用于包括数据块(与脚本相对)时,必须以嵌入式方式嵌入数据,必须使用type属性指定数据格式,不能指定src属性,并且必须包含script元素的内容符合为使用的格式定义的要求。”

在这里阅读:http :
//dev.w3.org/html5/spec/Overview.html#the-script-
element

您已经做到了。什么不是爱?属性数据无需根据需要进行字符编码。您可以根据需要对其进行格式化。它表现力强,预期用途明确。感觉不像是黑客(例如,使用CSS隐藏“
carrier”元素)。这是完全有效的。

2020-07-27