Facebookには、一意の要素IDを持たない要素を含め、すべての要素に対してランダムな要素IDがあることに気づきました。
<div id="__w2_YvdN1r2_loading">blah</div>
すべての要素でこれを行う理由と、これをどのように行うかについてのアイデアはありますか?
Facebookには、一意の要素IDを持たない要素を含め、すべての要素に対してランダムな要素IDがあることに気づきました。
<div id="__w2_YvdN1r2_loading">blah</div>
すべての要素でこれを行う理由と、これをどのように行うかについてのアイデアはありますか?
「なぜ」と考えることができる1つの理由は、IDが実際にランダムである場合、スクリーンスクレイピングを防止するか、少なくとも発生率を減らすことです。疑似乱数を生成する方法は無数にあり、それらのいずれかを強制して__w2_YvdN1r2
.
Facebook の Javascript がいかに重いかを考えると、ID があなたが考えるほどランダムであるとしたら、私はかなり驚かれることでしょう。
意味のあるスクレイピングが難しくなるように、おそらくランダムな文字列だけです。
これは、関連する可能性のあるbase64でエンコードされたUUIDを参照することであると想定しています-おそらくユーザーまたはトークンを表しています。
すべての要素に一意の ID を与えることで、FB がスクリプトを使用して特定の要素を参照できることが保証されます。たとえば、FB には、更新された要素までページをスクロールするスクリプトがあり、スクリプトがすべての要素に対して機能することを望んでいるとします。また、このようにして、すべての要素をURLのフラグメント識別子として使用できます。また、ページ内の任意の要素にパーマリンクすることもできます。したがって、たとえば、ウィキペディアのフラグメント識別子ページの「例」セクションにリンクしたい場合は、その要素の id をアンカーとして使用します#
。
<a href="http://en.wikipedia.org/wiki/Fragment_identifier#examples">my link text</a>
うわー。メタ。
方法については、クローズド ソースであるためわかりません。しかし、FB は PHP で書かれているため、 uniqidのようなものを使用する可能性があります。