我尝试通过 Facebook 图片进行更改,这就是我所看到的:
在火狐中:
页面 URL 没有变化。只有哈希值正在改变。这是一种允许爬虫对内容建立索引的技术 http://code.google.com/web/ajaxcrawling/docs/getting-started.html。发生的事情是这样的:
- 用户点击“下一步”
- JS 加载带有标签、注释等的下一张图像,并用它们替换旧内容。
- JS 更改哈希值以对应新图像
网址如下所示:http://www.facebook.com/home.php?#!/photo.php?fbid=1550005942528966&set=a.1514725882151300.28042.100000570788121&pid=3829033&id=1000001570788121
(注意哈希值)
至于第二个问题,这只是上述技术的一个好处。当您使用 Facebook 时,页面很少会真正刷新。仅更改哈希值,以便您可以向其他人发送链接,并且爬虫可以对内容建立索引。
在谷歌浏览器中:
It seems that chrome hassome way to change urls without refreshing the page. It does that by using window.history.pushState
. Read about it here http://www.spoiledmilk.dk/blog/?p=1922.
网址如下所示:http://www.facebook.com/photo.php?fbid=1613802157224343&set=a.1514725288215100.28042.1000005707388121&pid=426541&id=1000001570788121
(请注意,这里没有哈希,但 url 仍然随着图像一起变化)
In Epiphany http://projects.gnome.org/epiphany/:
当图像更改时,Epiphany 不会更改 URL。
网址如下所示:http://www.facebook.com/photo.php?fbid=1441817122377521&set=a.1514725882215100.28042.1000005707848121&pid=3251944&id=1000200570788121
(没有哈希,并且更改图像时 URL 保持不变)
(目前没有其他浏览器可供验证)