2010-08-12 43 views
5

Tôi đã nhận thấy rằng facebook có ID phần tử ngẫu nhiên cho mọi phần tử - bao gồm các phần tử không có id phần tử duy nhất.Tại sao facebook có ID phần tử ngẫu nhiên?

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

Bất kỳ ý tưởng nào tại sao chúng làm điều này trên mọi thành phần & cách chúng thực hiện việc này?

Trả lời

3

Một lý do tôi có thể nghĩ đến "lý do" sẽ ngăn chặn hoặc ít nhất là giảm tỷ lệ, screen scraping - nếu các ID thực sự là ngẫu nhiên. Về cách thức, có vô số cách để tạo ra các giá trị giả ngẫu nhiên và bất kỳ một trong số chúng có thể bị ép buộc để tạo ra một chuỗi giống như __w2_YvdN1r2.

Với Javascript nặng như thế nào, tôi sẽ rất ngạc nhiên nếu các ID là ngẫu nhiên như bạn nghĩ, trừ khi các giá trị cũng được đưa vào một mảng javascript/đối tượng/cửa hàng của một số mô tả cho các trang javascript để sử dụng .

+0

có thể dễ dàng xử lý các tham chiếu bằng javascript? im không chắc chắn nếu họ là ngẫu nhiên MỌI thời gian hoặc chỉ RANDOM ID? nếu chúng là ngẫu nhiên chỉ một lần - có thể để hỗ trợ nhận dạng javascript của các phần tử không có ID duy nhất? – Tom

+0

@Tom, nếu chúng không "ngẫu nhiên mỗi lần", thì chúng là xác định. Nếu có một alogithm được sử dụng để tạo ra các ID thì theo bản chất của chúng, chúng không thể là "ngẫu nhiên" (bỏ qua thực tế là các giá trị ngẫu nhiên được tạo ra bởi một máy tính thường là sản phẩm của một thuật toán) – Rob

0

Vì vậy, khó có thể khắc phục ý nghĩa, có thể chỉ là một chuỗi ký tự ngẫu nhiên.

0

Tôi giả định đây là tham chiếu UUID được mã hóa base64 mà chúng có thể được liên kết với - có thể đại diện cho người dùng hoặc mã thông báo.

+0

hmm tôi nghĩ nó có thể cho phép cho các nhà thiết kế không bận tâm đến các nhà phát triển - có nghĩa là, sử dụng Javascript nhiều - nếu họ gán các phần tử ngẫu nhiên cho mọi thứ thì các nhà phát triển có thể chỉnh sửa DOM và các nhà thiết kế không phải liên tục làm phiền họ? – Tom

0

Cho mỗi phần tử một id duy nhất đảm bảo rằng FB có thể tham chiếu một phần tử cụ thể bằng cách sử dụng tập lệnh. Ví dụ: FB có thể có một tập lệnh cuộn trang đó đến một phần tử được cập nhật và họ muốn tập lệnh hoạt động cho tất cả các phần tử. Ngoài ra, theo cách này, mọi phần tử đều có thể được sử dụng làm fragment identifier trong URL. Nó cũng cho phép bạn liên kết với bất kỳ phần tử nào trong trang. Vì vậy, ví dụ, nếu tôi muốn liên kết bạn đến "ví dụ" của trang Fragment Định danh wikipedia, sau đó tôi sẽ sử dụng id của yếu tố đó như cái neo với #:

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

Woah. Meta.

Đối với cách thức, chúng tôi không biết vì đó là nguồn đóng. Nhưng FB được viết bằng PHP để họ có thể sử dụng một cái gì đó như uniqid.

Các vấn đề liên quan