2010-08-12 10 views
5

Ich habe festgestellt, dass Facebook zufällige Element-IDs für jedes Element hat - einschließlich Elemente, die keine eindeutige Element-ID haben.Warum hat Facebook zufällige Element-IDs?

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

Irgendwelche Ideen, warum sie diese & auf jedem Element zu tun, wie sie dies tun?

Antwort

3

Ein Grund, warum ich für "warum" denken könnte wäre, zu verhindern, oder zumindest die Häufigkeit von screen scraping zu reduzieren - wenn die IDs tatsächlich zufällig sind. Wie, gibt es unzählige Möglichkeiten, pseudozufällige Werte zu generieren, und jeder von ihnen könnte gezwungen werden, eine Zeichenfolge zu erzeugen, die __w2_YvdN1r2 ähnelt.

Gegeben, wie Javascript schwer Facebook ist, würde ich ziemlich überrascht sein, wenn die IDs so zufällig sind, wie Sie denken, es sei denn, die Werte werden auch in eine Javascript-Array/Objekt/Store einer Beschreibung für die Seiten Javascript zu verwenden .

+0

vielleicht leichter Referenzen von Javascript behandeln? Ich bin nicht sicher, ob sie JEDES Mal zufällig sind oder nur RANDOM IDs? wenn sie nur einmal zufällig sind - vielleicht zur Unterstützung der Javascript-Identifikation von Elementen, die keine eindeutigen IDs haben? – Tom

+0

@Tom, wenn sie nicht "jedes Mal zufällig" sind, dann sind sie deterministisch. Wenn es einen Algorithmus gibt, der zur Erzeugung der IDs verwendet wird, dann können sie aufgrund ihrer Natur nicht "zufällig" sein (die Tatsache ignorierend, dass zufällige Werte, die von einem Computer erzeugt werden, normalerweise das Produkt eines Algorithmus sind) – Rob

0

So dass es schwieriger ist, sinnvoll zu kratzen, wahrscheinlich nur eine Reihe von zufälligen Zeichen.

0

Ich gehe davon aus, dass dies die Base64-codierten UUIDs referenziert, denen sie möglicherweise zugeordnet sind - möglicherweise einen Benutzer oder ein Token darstellt.

+0

hmm ich dachte, es könnte möglich sein für Entwickler, Entwickler nicht zu stören - das heißt, Javascript stark zu benutzen - wenn sie zufällige Elemente zu allem dann zuweisen, können Entwickler das DOM redigieren und Entwerfer müssen sie nicht ständig stören? – Tom

0

Wenn jedem Element eine eindeutige ID zugewiesen wird, ist sichergestellt, dass der FB mithilfe von Skripten auf ein bestimmtes Element verweisen kann. Zum Beispiel könnte FB ein Skript haben, das die Seite zu einem aktualisierten Element scrollt, und sie möchten, dass das Skript für alle Elemente funktioniert. Auf diese Weise kann jedes Element als fragment identifier in einer URL verwendet werden. Es erlaubt Ihnen auch, zu jedem Element auf der Seite permalink zu gehen. So zum Beispiel, wenn ich Sie auf den Abschnitt „Beispiele“ von Wikipedias Fragment Identifier Seite verknüpfen möchte, dann werde ich die ID dieses Element als Anker verwenden, um mit #:

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

Woah. Meta.

Wie für das Wie, wissen wir nicht, weil es closed source ist. Aber FB ist in PHP geschrieben, so dass sie etwas wie uniqid verwenden können.