javascript - 在网页中的何处存储元素特定的额外数据;数据或javascript

标签 javascript jquery ajax html

我有一些数据需要与特定元素相关联,例如单个表格行。此数据包含当前状态和与 SQL 行相关的唯一标识符等信息。当用户与我要读出唯一标识符的元素交互时,并使用该标识符发出 AJAX 请求,让用户更改该元素的状态。

经过研究,似乎有两个阵营关于如何嵌入此元素特定信息。

1) 在 html5 中使用数据属性。我的理解是这将适用于现代网络浏览器以及不支持 html5 的旧浏览器。但是虽然这有效,但它不遵循 HTML5 规范(低于 HTML5),因此如果您通过 HTML 语法检查器运行它,它不会验证。

2) 将附加数据存储到 javascript 数组、对象等中。额外的工作是现在您需要一种方法将 javascript 数据关联到 html 元素。

使用这两种不同的方法存储数据的优缺点是什么?您会推荐什么方法?

谢谢!

最佳答案

我不会担心数据属性没有通过验证器。该属性在 HTML5 中是因为人们长期以来一直使用类似的、非标准化的属性来专门解决这个问题。继续并使用规范中有效的部分开始编写“HTML5”,即不要在特定浏览器中中断,并使用 HTML5 文档类型。 W3C 验证器至少已经支持文档类型。

至于使用哪种方法,我认为这真的归结为你想在 JavaScript 解释器中解析信息的时间:页面加载时或需要数据时。我想这取决于您掌握了多少信息才能最有效。但是,使用一两个数据属性将它添加到 HTML 中不会出错。

就个人而言,我喜欢使用数据属性将信息添加到 HTML 中。在您描述的场景中,我会使用 data-statedata-rid (或类似的),这样我就不必进一步解析信息(听起来像您正在考虑将两位信息放入一个数据属性中)。这样,您的信息表就真正完整了:数据呈现给用户,标记包含解析器可能需要的更多信息。

关于javascript - 在网页中的何处存储元素特定的额外数据;数据或javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707491/

相关文章:

javascript - 用jquery求 float 和整数的和

c# - jqgrid 没有选择样式

javascript - 在 Backbone View 中编写下拉菜单

c# - ASP.NET MVC 4 - 以 HTML、JSON 或 XML 响应的正确方式

javascript - Ajax 响应处理

ES6 中的 Javascript 类,如何将它们导入到其他 js 文件和 html 文件中?

javascript - 对所有事件使用 jQuery .on()

javascript - Select2 插件中的第二个多选选项不会触发 Jquery key up 事件

Javascript date-fns 更具体的 distanceInWords

html - 如何隐藏jquery中最后一个div内容之后的下一个按钮