我有一些数据需要与特定元素相关联,例如单个表格行。此数据包含当前状态和与 SQL 行相关的唯一标识符等信息。当用户与我要读出唯一标识符的元素交互时,并使用该标识符发出 AJAX 请求,让用户更改该元素的状态。
经过研究,似乎有两个阵营关于如何嵌入此元素特定信息。
1) 在 html5 中使用数据属性。我的理解是这将适用于现代网络浏览器以及不支持 html5 的旧浏览器。但是虽然这有效,但它不遵循 HTML5 规范(低于 HTML5),因此如果您通过 HTML 语法检查器运行它,它不会验证。
2) 将附加数据存储到 javascript 数组、对象等中。额外的工作是现在您需要一种方法将 javascript 数据关联到 html 元素。
使用这两种不同的方法存储数据的优缺点是什么?您会推荐什么方法?
谢谢!
最佳答案
我不会担心数据属性没有通过验证器。该属性在 HTML5 中是因为人们长期以来一直使用类似的、非标准化的属性来专门解决这个问题。继续并使用规范中有效的部分开始编写“HTML5”,即不要在特定浏览器中中断,并使用 HTML5 文档类型。 W3C 验证器至少已经支持文档类型。
至于使用哪种方法,我认为这真的归结为你想在 JavaScript 解释器中解析信息的时间:页面加载时或需要数据时。我想这取决于您掌握了多少信息才能最有效。但是,使用一两个数据属性将它添加到 HTML 中不会出错。
就个人而言,我喜欢使用数据属性将信息添加到 HTML 中。在您描述的场景中,我会使用 data-state
和 data-rid
(或类似的),这样我就不必进一步解析信息(听起来像您正在考虑将两位信息放入一个数据属性中)。这样,您的信息表就真正完整了:数据呈现给用户,标记包含解析器可能需要的更多信息。
关于javascript - 在网页中的何处存储元素特定的额外数据;数据或javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707491/