url中#的用途是什么?

时间:2012-10-12 07:25:14

标签: php javascript jquery web-applications iframe

我正在构建一个Web应用程序,并希望遵循Web行业的最佳实践。

我意识到很多网络应用程序都在他们的网址中使用#。

例如,看看谷歌分析。

https://www.google.com/analytics/web/?hl=en#report/visitors-language/a33185827w60383872p61754588/ 

当我查看访客语言页面时,此地址位于地址栏中。

https://www.google.com/analytics/web/?hl=en#report/visitors-geo/a33185827w60383872p61754588/

当我查看访客地理位置页面时,此地址位于地址栏中。

我从中理解的是#report / visitor-language和#report / vistiors-geo

的传递

另外我了解谷歌分析正在使用iframe。似乎只有主要内容框正在改变和显示内容。

#用于实现iframe功能吗?如果有人能指导我(初学者程序员试图学习更多东西)朝着正确的方向发展,我将不胜感激。

6 个答案:

答案 0 :(得分:3)

这是网址中的“哈希”。

许多浏览器都支持javascript中的哈希更改事件。

据我所知,哈希变化是ajax回调的革命。

因此当用户使用散列与任何链接进行交互时,然后在散列更改时触发事件,并且您可以使用javascript应用任何内容。

另一件事是浏览器历史记录支持散列更改。

答案 1 :(得分:3)

有几个答案,但似乎都没有覆盖后端部分。

普通网址,您自己的示例: https://www.google.com/analytics/web/?hl=en#report/visitors-language/a33185827w60383872p61754588/

您可以将后哈希(包括哈希)部分(也称为片段)视为客户端请求。

Web服务器永远不会知道哈希符号后输入的内容。它是指向页面特定ID的浏览器。

对于基本网页,如果您输入     

< a name="main">welcome< /a>
如果您的网站位于http://example.com/welcome,则打开http://example.com/welcome#main会将您的浏览器“关注”到标记中的“欢迎”文字。

Web服务器不知道#main是否在URL中。

将问号作为URL参数调用后,在URL中填充。 Web服务器可以在这些值上提供不同的内容。

然后,有一种名为“Ajax”的技术利用URL中的这些#部分来提供不同页面加载的不同内容。这不是iframe。 使用JavaScript,您可以触发url后哈希部分的更改,并向服务器发出请求以获取页面的特定部分。 http://example.com/welcome#main2 即使名为“main2”的部件不存在,也可以使用JavaScript显示。

hashbang是“#!”。通过指示此部分是动态网页,使搜索引擎的生活更轻松。

PS:刚刚注意到这是我在SO中的第100个答案!

答案 2 :(得分:1)

请参阅以下网址

SEO and the use of !# in a url

或阅读

“#!被称为“hashbang”,它们是Web开发中所有邪恶的根源。'

基本上,弱网络开发人员决定使用#anchor名称作为kludgy hack来让“web 2.0”的东西在他们的页面上运行,然后抱怨谷歌他们的页面排名遭受了损失。谷歌通过启用hashbang来解决他们的问题。

弱的网络开发人员把这项工作作为福音。不要使用它。这是一个拐杖。

依赖于hashbangs的Web开发是错误的Web开发。

这篇文章的措辞远远超出我的预期,并且处理Gawker媒体惨败从他们迁移到(失败的)hashbang中心网站。它告诉你发生了什么以及为什么它不好。

http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

答案 3 :(得分:0)

如果我错了,请纠正我,该URL中的#标签将用作将页面滚动到具有id的元素的锚点。例如,我将您发送到网址http://example.com/sample#example,页面将在元素处滚动(仅显示)(我使用div作为任意示例,它可以是任何内容)。

答案 4 :(得分:0)

网址中的Ajax和哈希标记主要用于快速操作。 如果您的网站中有一部分只能通过火灾事件(主要是点击)看到 - 那么就很难分享它。使用网址中的哈希标记,您可以(通过javascript)让浏览器认为您执行了必要的操作,并显示相关部分。

答案 5 :(得分:0)

通常,在网址中使用'#'会在该特定网页中找到“#”旁边的特定ID。通过使用它,我们也可以查看页面中间的特定内容。