2013-08-06 68 views
1

当检查实时邮件URL时,我发现他们使用#而不是Query string使用哈希(#)而不是查询字符串有没有任何优势

https://bluxxx.mail.live.com/#n=xxxxxxxxx&fid=x

#被删除它是一个404错误。有没有使用#代替查询字符串的优势。它可以在PHP应用程序中实现。

+1

是不是只是页面上某个元素的class属性。例如,如果在页面底部定位div class =“xx”,则可以触发site.com/#xx指向该div。所以这只是客户端 –

+0

谢谢。 @ royal-bg –

回答

3

哈希URL常常被用来代替实际返回到另一个页面的服务器(也就是说,页面加载被Javascript拦截)。

散列和任何之后通常不向服务器发送...

想象以下场景......

<a id="SomeLink" href="#DoSomething"> 

你再附上一个onclick使用JavaScript ...

$("#SomeLink").click(function() {...}) 

如果该点击功能不是return false,则即使对服务器的请求没有b,网址在其末尾也会有一个#DoSomething een提出。

它也可以用作操作历史记录的占位符,因此您可以更好地控制后退/前进按钮(或许多其他客户端javscript技巧)。以history.js为例。

+1

感谢您的信息,非常有帮助。 @basic –

2

URL的哈希部分主要用于客户端处理。你的javascript可以读取它,如果你的页面上有一个指定的锚点,它将滚动到该内容。浏览器在加载带有散列的URL时不会将URL的散列部分发送到服务器,因为查询字符串被发送到浏览器,因此可被PHP访问。

+0

谢谢。 @@穆奈姆 –

相关问题