html – url中的#符号是什么

前端之家收集整理的这篇文章主要介绍了html – url中的#符号是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我去了一些照片共享网站,所以当我点击照片时,它会指向我的网址

www.example.com/photoshare.PHP?photoid=1234445

.当我点击此页面中的另一张照片时,网址就会变为

www.example.com/photoshare.PHP?photoid=1234445#3338901

如果我点击同一页面中的其他照片,则#后面的唯一数字会发生变化.和漂亮的照片一样

www.example.com/photoshare.PHP?album=holiday#!prettyPhoto[gallery2]/2/

我假设他们使用了ajax,因为整个页面似乎没有加载,但是url被更改了.

解决方法

#后面的URL(包括和)的部分是 fragment identifier.它的其余部分是特殊的.要记住的关键是“仅客户端”(当然,客户端可以选择将其发送到服务器……而不是作为片段标识符):

The fragment identifier functions differently than the rest of the URI: namely,its processing is exclusively client-side with no participation from the server — of course the server typically helps to determine the MIME type,and the MIME type determines the processing of fragments. When an agent (such as a Web browser) requests a resource from a Web server,the agent sends the URI to the server,but does not send the fragment. Instead,the agent waits for the server to send the resource,and then the agent processes the resource according to the document type and fragment value.

这可以用于导航到“锚点”链接,例如:http://en.wikipedia.org/wiki/Fragment_identifier#Basics(注意它是如何进入“基础”部分).

虽然过去常常只使用“锚点”,但它现在用于在许多基于JavaScript的站点中存储可导航状态 – 例如,gmail大量使用它.并且,就像这里的情况一样,有一些“photoshare”JavaScript也使用片段标识符进行状态/导航.

因此,如所怀疑的,JavaScript“捕获”片段(有时称为“哈希”)更改并执行AJAX(或其他后台任务)来更新页面.片段更改时页面本身不会重新加载,因为URL仍然引用相同的服务器资源(片段标识符之前的URL部分).

较新的浏览器支持onhashchange事件,但是通过各种轮询技术已经支持监视很长时间.

快乐的编码.

猜你在找的HTML相关文章