【发布时间】:2011-04-27 02:11:21
【问题描述】:
我在 Facebook 上发现,当我更改页面时,页面地址会更改,但页面不会重定向,而是通过 ajax 加载。
您可以知道,因为单击链接时控制台不清除但 URL 会更改。
很奇怪,但有人知道它是怎么做到的吗?
【问题讨论】:
-
你准确地一针见血。他们使用 javascript 基于异步回调来操作 DOM。然后,您也可以使用 window 对象从 javascript 更新窗口位置(地址栏)。
-
您的问题已包含在The Facebook footer bar is an iframe, so why it doesn't it reload with the rest of the page? 中 - 我已尝试在那里提供一些其他信息。
-
是的,这可以解释一些事情,但是它将 URL 更改为哈希,而现在他们更改了 URL! :O 太棒了 XD
-
@ITg:仔细看——如果页面没有重新加载,那么某处有一个哈希......
-
@ITg:查看实际加载的 URL,而不是当您将鼠标悬停在链接上时出现的 URL。 Facebook 在这点上很巧妙:许多区域由两个 URL 访问:一个带有正常路径,一个带有片段。通过 AJAX 加载时使用片段版本来避免整个页面重新加载,并且 - 这是诀窍 - 如果您在该 URL 上强制重新加载,生成的页面将在客户端将您重定向到路径版本。如果您真的想看看发生了什么,请安装 Live HTTP Headers 插件,或使用 Fiddler。
标签: javascript http facebook