Browser 为什么Facebook有一个#!在Firefox的URL中,但在Chrome中没有?

Browser 为什么Facebook有一个#!在Firefox的URL中,但在Chrome中没有?,browser,Browser,在Safari中,Firefox: www.facebook.com/#/php?sk=更新 镀铬: www.facebook.com/home.php?sk=更新 …没有# 诀窍是什么?这是告诉谷歌(和其他人)这是AJAX内容的一种方式。我想这叫舍邦本身通常被称为 如果您正在运行一个AJAX应用程序,其中包含希望出现在搜索结果中的内容,那么我们有一个新的流程,在实现时,它可以帮助Google(以及其他搜索引擎)抓取和索引您的内容 散列还允许后退按钮、书签等在AJAXy应用程序中按需工作 至于

在Safari中,Firefox:

www.facebook.com/#/php?sk=更新

镀铬:

www.facebook.com/home.php?sk=更新

…没有
#

诀窍是什么?

这是告诉谷歌(和其他人)这是AJAX内容的一种方式。我想这叫舍邦<代码>本身通常被称为

如果您正在运行一个AJAX应用程序,其中包含希望出现在搜索结果中的内容,那么我们有一个新的流程,在实现时,它可以帮助Google(以及其他搜索引擎)抓取和索引您的内容

散列还允许后退按钮、书签等在AJAXy应用程序中按需工作


至于区别,我认为这只是意味着一个链接是硬链接,另一个链接是Ajax链接。

代码>#
用于使站点在AJAX上工作,同时仍然允许使用浏览器的后退、前进和刷新按钮。如果没有,那么当前查看的页面就不是由AJAX引入的,很简单。

很可能第一个URL广泛使用AJAX,而第二个URL不使用AJAX加载重要内容(而是使用传统的网页加载)。粗略地说,通过AJAX,我的意思是使用JavaScript代码将新部分加载到页面中,而无需完全重新加载,从而获得“更平滑”的用户体验

两个URL只有在
#
之后的内容不同,实际上它们位于同一页面上(但在导航方面几乎类似于单独的页面),因为当用户单击“链接”(或为页面添加书签)时,JavaScript代码可以将其中一个“哈希”插入到web浏览器的后退/前进/重新加载历史记录中。它还可以通过监视所谓的
onhashchange
来检测用户何时单击后退按钮,并相应地加载正确的页面

请注意,由于这是同一个HTML页面,因此在应用程序的JavaScript代码发出AJAX请求之前,
#
后面的URL部分(官方规范称为“片段标识符”)不会发送到服务器


为什么是
#而不仅仅是
#
?前者是谷歌最近推出的,它不完全支持JavaScript(或者根本不支持)。这就是如果有人在网页中使用这样的链接,谷歌的爬虫程序可以跟随它,因为它可以识别字符序列,并以标准化的方式重写URL(这样服务器就可以获得所有必要的信息,在不使用AJAX的情况下将页面发送给爬虫程序)。

在chrome中打开fackebook,然后打开链接。内容更改时不刷新页面,url更改时不使用“#!”。仅适用于chrome。请参见此处: