2012-02-21 27 views
5

Context

tôi nhận ra rằng trong Twitter, trang thông tin được hiển thị theo những cách khác nhau tùy thuộc vào cách nó được gọi là:Twitter hiển thị hồ sơ của tôi ngay lập tức như thế nào?

  1. Bằng cách nhấp vào liên kết hồ sơ trong menu, DOM và mới nhất tweet được tải và trang được hiển thị trong ~ 4 giây. Mỗi lần.
  2. Sử dụng phím tắt GP (hoặc liên kết ở bên trái), trang được hiển thị ngay lập tức.

Chi tiết

  • tôi nhận thấy rằng hồ sơ cá nhân phải được hiển thị thời gian gần đây cho GP ngay lập tức hiển thị trang.
  • Bằng cách đóng và mở trình duyệt, cấu hình phải được hiển thị lại cho GP hiển thị ngay lập tức trang.

tra

Vì vậy, lúc đầu tôi nghĩ Twitter có thể sử dụng một biến phiên serverside để lưu trữ dữ liệu. Sau đó, tôi đã phát hiện thấy việc sử dụng localStorage trong mã nguồn Twitter. Tôi thú nhận, DOM storage không quen thuộc đối với tôi và mã JavaScript của Twitter không thể đọc được. Vì vậy, tôi không chắc họ sử dụng localStorage để lưu trữ hồ sơ.

Câu hỏi

Bất kỳ giả thuyết, thông tin hoặc liên kết nào về lưu trữ/lưu trữ trên Twitter DOM?

Trả lời

5

Đây là một câu hỏi thú vị, vì vậy tôi đã truy cập twitter và tự mình thực hiện một số điều tra.

Nhấp vào tên tiểu sử của tôi, liên kết được thực hiện bằng AJAX. Tôi thấy dòng thời gian của mình được tải xuống. Tuy nhiên, trang đã được tải trước, vì vậy thông tin của tôi cũng đã được tải xuống.

Bằng cách nhấp vào liên kết ở bên trái hoặc với GP bạn chỉ hiển thị trang đã được tải (ẩn hoặc trong đối tượng JavaScript, vì vậy trong bộ nhớ). Nó sẽ chỉ hiển thị hồ sơ của bạn đã được tải về, và bởi AJAX tải xuống nguồn cấp dữ liệu (JSON).

URL sẽ thay đổi từ https://twitter.com/#!/ thành https://twitter.com/#!/wraldpyk (trong trường hợp của tôi).

Khi bạn nhấp vào hồ sơ của mình trong menu (trên cùng bên phải), bạn truy cập https://twitter.com/wraldpyk. Thao tác này sẽ mở lại trang và sẽ tải xuống mọi thứ. Lưu ý rằng bạn sẽ được chuyển hướng đến https://twitter.com/#!/wraldpyk và trong khi đó dòng thời gian của bạn cũng được tải xuống (mở FireBug và xem hình ảnh và nguồn cấp dữ liệu được tải xuống)

Theo như tôi có thể biết, không có bộ nhớ cục bộ (ngoại trừ JavaScript) hoan thanh. Tất cả dữ liệu được tải xuống liên tục khi tải trang mới.

Điều tương tự cũng xảy ra khi bạn nhập gh khi trên tiểu sử của mình.(Và cũng với tất cả các lối tắt khác)

+0

Ok Tôi không hiểu cách đối tượng JavaScript có thể di chuyển từ trang này sang trang khác. Tôi đã tìm kiếm mà không cần tìm và cuối cùng tôi đã hỏi tôi câu hỏi này: [Cái gì là #! trong URL Twitter cho?] (http://stackoverflow.com/questions/3009380). Vì vậy, 'https: //twitter.com/#! /' Và 'https: //twitter.com/#!/Wraldpyk' là một trang duy nhất và giống nhau? –

+0

Có họ thực sự. thường nó đang được sử dụng cho Anchors (http://www.hypergurl.com/anchors.html). Nó không làm cho trang làm mới. –

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