当前位置: 首页 > 面试题库 >

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

柴翰藻
2023-03-14
问题内容

我正在考虑像这样在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中html" target="_blank">存储JSON的替代方法,我已经决定这是解决我遇到的特定问题的最佳解决方案。 我只是在寻找最佳方法。


问题答案:

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

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

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

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



 类似资料:
  • 如果我们不想付出构建语法分析树的开销,或者想要在分析期间动态地计算值或把东西打印出来,那么可以通过在语法中嵌入任意代码实现。它的比较困难的,因为我们必须明白在语法分析器上的操作的影响,以及在哪里放置这些操作。 为了解释嵌入在语法中的操作,让我们先来看下文件rows.txt中的数据: parrt Terence Parr 101 tombu Tom Burns 020 bk

  • 这个问题被问了很多次,但我找不到解决问题的答案。 我试图将嵌套的JSON格式转换为CSV格式如下: JSON结构是任意的,可以是任何东西,嵌套或不嵌套。 我不应该知道它,这是一个数据库答案,我需要将这个JSON答案导出到CSV文件中。 下面是一个例子 输入: 我想要的结果是: 这是一个例子,它可以是任何其他JSON文档。 这里的想法是在CSV列名中使用点表示法。 我已经使用了CDL,但输出不是我想

  • 问题内容: 我们正在使用构建大型Web应用程序。在不同情况下,我们经常使用自定义指令。当涉及到DOM操作,绑定事件等…发生时,我们在自定义指令的函数中定义了操作DOM的函数,但是我们从控制器调用了它(我们在因此它可以被给定的控制器访问)。我认为这样做的角度方法是为每个函数定义一个单独的自定义指令,并直接从模板中使用它,但是在我们的情况下,我不知道这样做会很方便很多自定义指令,所以BAD要做我们正在

  • 我有一个小型Android应用程序,我需要每隔几秒钟在其中执行一些FTP操作。在学习了在UI线程上运行网络内容是Android不喜欢的艰难方式后,我想到了这个解决方案: 这是执行不能直接在UI线程上运行的重复任务的好做法吗?此外,而不是通过调用始终创建一个新的Asyncask对象 创建< code>CheckFtpTask对象一次,然后重用它,这是一种选择吗?还是会给我带来副作用? 先谢谢你Jen

  • 问题内容: 我警告我。 然而,结构的嵌套是既定的编程技术,以及相当一些人在坚持它。 编辑:确实@vadian指出了Swift语言指南的规则: 要将类型嵌套在另一个类型中,请在其支持的类型的大括号内写入其定义。 类型可以嵌套到所需的多个级别 。 我知道它与泛型的使用发生冲突,并且Xcode可能会变得异常缓慢。实际上(通过测量最慢的编译点)是我开始研究此嵌套规则的原因。 实行皮棉规则的原因是什么?在这

  • 问题内容: 我需要为某些对象实现JSON序列化,并且在与通用集合进行集成时遇到了一个问题。 所有可序列化的类都实现此接口(JSONObject来自此库): 我基于java.util.list的集合的代码大致如下所示: 我的问题是:当我从JSONObject加载AwesomeList时,我需要创建其元素,但是这是不可能的,因为Java禁止我写 我应该如何修改此任务的方法? 问题答案: 您是否绑定到该