为什么facebook有随机元素ID?

时间:2010-08-12 08:34:17

标签: javascript html getelementbyid

我注意到facebook为每个元素都有随机元素ID - 包括没有唯一元素id的元素。

<div id="__w2_YvdN1r2_loading">blah</div>

任何想法为什么他们在每个元素和&amp;他们是怎么做到的?

4 个答案:

答案 0 :(得分:3)

我可以想到“为什么”的一个原因是如果ID确实是随机的,则可以预防或至少降低screen scraping的发生率。至于如何,有无数种方法可以生成伪随机值,其中任何一个都可以被强制生成一个类似于__w2_YvdN1r2的字符串。

考虑到Javascript如何沉重的Facebook,如果ID是随机的,我会非常惊讶,除非这些值也输出到javascript数组/对象/商店中,用于javascript要使用的页面。

答案 1 :(得分:0)

因此,有意义地刮掉它可能更难,可能只是一串随机字符。

答案 2 :(得分:0)

我假设这是为了引用它们可能与之关联的base64编码的UUID - 可能代表用户或令牌。

答案 3 :(得分:0)

为每个元素赋予唯一ID可确保FB可以使用脚本引用特定元素。例如,FB可能有一个脚本将页面滚动到更新的元素,并且他们希望脚本适用于所有元素。此外,这样每个元素都可以用作URL中的fragment identifier。它还允许您永久链接到页面中的任何元素。因此,例如,如果我想将您链接到维基百科的片段标识符页面的“示例”部分,那么我将使用该元素的id作为#的锚点:

<a href="http://en.wikipedia.org/wiki/Fragment_identifier#examples">my link text</a>

哇。元。

至于如何,我们不知道,因为它是封闭源。但FB是用PHP编写的,所以他们可能会使用像uniqid这样的东西。