5

我有可通过侧窗格上的索引访问的动态内容,当用户选择侧窗格元素时,我使用 id 作为一种机制来确定他们所指的数据,因此我可以动态生成适当的数据对于主窗格。

我只是使用附加一个数字的预格式化 id,其中数字是数组中的索引,从而为 html 标签创建唯一的 id。但是在某些情况下,我会与数字发生冲突,所以我一直认为使用 UUID 将是解决我的问题的一种方法。

但是我不知道将 UUID 用于 html 标签 ID 是否有任何问题。

根据我对有效字符和长度限制的了解,我相信直接快速的答案是它应该起作用。版本 4 使用字符0-9、az 和 -,它们是 HTML 标记 ID 的有效字符。此外,长度似乎不是问题

我主要关心的是是否存在限制 id 有效大小的浏览器问题?运行测试并创建一个值为 的单个 id 2d1b8447-e37a-43d8-9f7c-075eac7d9bcc,甚至创建一个具有多个的测试都很好。但我无法测试将使用该应用程序的所有浏览器,并且随着时间的推移很难测试性能。我的内容非常动态,可以随着时间的推移删除和添加带有这些 id 的标签

我尝试搜索带有大标签 ID 的报告问题,但一无所获,但通过 Google 没有问题并不能证明没有任何问题。

那么...有没有人在 html 标签上使用 UIID 的 ids,如果是这样,我需要避免您遇到的任何问题吗?

我应该注意到,有证据表明 UUID 在索引(InnoDB)方面存在性能问题,我担心的是 DOM 操作和使用带有 UUID 的 id 的 jQuery 可能会遇到类似的问题。

干杯。

4

2 回答 2

5

可以使用data-属性完成同样的事情。

例子:

<a href="#" data-UUID="2d1b8447-e37a-43d8-9f7c-075eac7d9bcc" class="product_link">Some product</a>

用 jQuery读取data-属性:

$('.product_link').click(function(){
     var UUID=$(this).data('UUID');
    /* do something with UUID*/
})
于 2013-01-20T01:18:51.333 回答
1

我使用 UUID 作为元素 ID,而 CSS 选择器对我来说会失败,因为似乎 ID 必须以字母而不是数字开头,以便能够对它们执行有效的基于 CSS id-selector 的查询。

document.querySelectorAll('#fd759ae2-c0ed-4de5-80fd-932c814a53c7 > div') # works
document.querySelectorAll('#81ea82f5-9a6f-4ae3-93e3-a5ef3579c554 > div') # fails
于 2019-12-05T12:36:27.890 回答