URL中使用井号(#)的用法

41

在URL末尾的#指定了html元素的ID。 - yashhy
6
碎片标识符是一个指向网络资源中特定片段的URI的组成部分。在一个URL中,碎片标识符由#字符和紧随其后的片段标识符组成。片段标识符指定了资源的子集,例如文档中的章节或图像中的特定区域。注意:URI是统一资源标识符的缩写,是用于标识互联网上的资源的字符串。URL是统一资源定位符,是URI的一种类型,用于指定资源的位置。 - Deepak Ingole
如果您在此页面向下滚动并单击任何评论上发布的时间,会发生什么?请注意URL的更改和行为。 - Janaka R Rajapaksha
2个回答

49

哈希(Hash)也可以用于单页面应用程序,因此,您可以使用哈希作为从页面到页面导航的手段,而不是将其用于导航到页面中的某一点。这样做的好处是不需要刷新页面。

还有一种称为“哈希银弹”(hashbanging)的方法,它用于单页面应用程序,可帮助 Ajax 应用程序更易于索引化。

有几篇关于这个主题的好文章:


+1,回复得很好!https://mail.google.com/mail/u/0/#inbox中的#inbox是一种在页面不刷新的情况下从一个页面导航到另一个页面的方式吗?它是在服务器端还是客户端(Web浏览器)上实现的? - Tim

13
考虑一个单页面网站,或者完全基于AJAX构建的网站,没有任何页面重新加载。 #哈希字符有助于将应用程序的状态推送到客户端,这有助于应用程序本身了解状态,并使客户端(和浏览器)了解状态。这也有助于用户将应用程序在其当前状态下加为书签并使用返回和前进按钮(浏览器历史记录)。

有类似这样的网站吗? - Naman
@all 假设有一个网站,它将输入作为get参数并发送到服务器。我在输入中放置了哈希值。URL将使用该哈希参数形成,因此即使在此哈希之后的整个值也会被发送到服务器。这里有什么区别? - Naman
@Naman,我不是很理解你的例子。哈希基本上是在页面没有重新加载或表单提交时使用的。因此(例如),所有内容都通过AJAX发送到服务器,服务器响应AJAX请求并添加#something以保存某些状态。 - Arman P.
@Naman 当你发送POST或GET参数中的#时,它将被URL编码为%23,并在服务器端自动进行URL解码。因此,浏览器始终知道哪个是简单哈希,哪个是参数值中的哈希。 - Arman P.
1
@Naman #(哈希,锚点,状态)也会出现在问号后面,但是所有作为参数的#符号都将被URL编码(将变成%23)。我不确定对于你的情况如何,这取决于使用情况,但你可以尝试自己并在评论中告诉我具体工作示例。 - Arman P.
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接