javascript - Twitter 如何立即显示我的个人资料?

标签 javascript ajax session twitter local-storage

上下文

我意识到在 Twitter 中,个人资料页面根据其调用方式以不同方式显示:

  1. 通过点击菜单中的个人资料链接,加载 DOM 和最新的推文,并在大约 4 秒内显示页面。每一次。
  2. 使用键盘快捷键 GP(或左侧的链接),页面会立即显示。

详情

  • 我注意到配置文件一定是最近显示的,GP 会立即显示该页面。
  • 通过关闭和打开浏览器,必须再次显示个人资料,以便 GP 立即显示页面。

调查

所以起初我认为 Twitter 可以使用服务器端 session 变量来存储数据。然后我在 Twitter 源代码中发现了 localStorage 的用法。我承认,DOM storage我不熟悉,Twitter JavaScript 代码不可读。所以我不确定他们使用 localStorage 来存储配置文件。

问题

关于 Twitter DOM 存储/ session 存储的任何假设、信息或链接?

最佳答案

这是一个有趣的问题,所以我去推特上,自己做了一些调查。

单击我的个人资料名称,链接将使用 AJAX 完成。我看到我的时间线正在下载。但是,页面已经提前加载,所以我的信息也已经下载了。

通过单击左侧的链接,或使用 GP,您只显示已加载的页面(隐藏的,或在 JavaScript 对象中,因此在内存中)。它只会显示您已经下载的个人资料,并通过 AJAX 下载提要 (JSON)。

URL 将从 https://twitter.com/#!/ 更改为 https://twitter.com/#!/wraldpyk(在我的例子中).

当您在菜单(右上角)中单击您的个人资料时,您会转到 https://twitter.com/wraldpyk .这将重新打开页面,并下载所有内容。请注意,您将被重定向到 https://twitter.com/#!/wraldpyk,同时您的时间线也会被下载(打开 FireBug 并查看正在下载的图像和提要)

据我所知,没有完成任何本地存储(除了 JavaScript,就像每个人所做的那样)。所有数据都会在新页面加载时不断下载。

当您在个人资料中键入 gh 时,同样的事情也会发生。 (以及所有其他快捷方式)

关于javascript - Twitter 如何立即显示我的个人资料?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386835/

相关文章:

javascript - 将点击绑定(bind)到通过 AJAX 加载的图像

javascript - 如何检查 ajax 响应是否为 javascript 内容类型?

javascript - 在 JavaScript 中合并多个已排序对象数组的最有效方法是什么?

javascript - 使用本地存储在 Javascript 中撤消、重做

javascript - 如何使用 Javascript 选择文件?

javascript - Ajax 文本文件不工作,但 php

c# - 访问 session 对象

PHP - session 变量的替代方法是什么

ruby-on-rails - Rails,设计多个模型登录及其 session

javascript - 如何为同一 div 中存在的两种形式切换显示和隐藏?