我注意到facebook为每个元素都有随机元素ID - 包括没有唯一元素id的元素。
<div id="__w2_YvdN1r2_loading">blah</div>
任何想法为什么他们在每个元素和&amp;他们是怎么做到的?
答案 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这样的东西。