我遇到过一种情况,我想确定浏览器如何处理包含片段标识符的URI,例如Products#A
。想象一下,我的网站有两个页面:Products
和FAQs
。然后,在每个内部我想使用#导航到特定的HTML元素。所以:
href="Products#A"
中,href="#A"
和Products
之间有什么区别?FAQs
?href="Products#A"
中的网址是否始终会触发服务器调用,或者浏览器是否知道它已经在页面Products
上并且它没有进行服务器调用?/
(如href="/products#A"
)是什么意思?这会强制服务器调用吗?我已经进行了一些测试,但我在这里缺少一些理论。
答案 0 :(得分:0)
为了回答你的问题,我根据自己的经验来做这些。
如果我已经在页面href="Products#A"
中,href="#A"
和Products
之间有什么区别?
无。为了安全起见,如果您在不同的页面中,并且使用相同的部分(或相同的源)呈现内容,这可能会有所帮助。
如果我在页面FAQs
中?
它正常导航到Products
并找到id="A"
的元素并滚动到那里。
放置href="Products#A"
中的网址是否始终会触发服务器调用,或者浏览器是否知道它已在页面Products
上,并且它不会进行服务器调用? 强>
这是一个客户端调用,没有对URL片段进行服务器调用。
这是所有浏览器的标准吗?
我相信。
答案 1 :(得分:0)
如果链接(片段除外)解析为与当前页面相同的URL,则它将在当前页面中导航。
如果它解析为其他页面,则会加载新页面。
如何实际表达相对(或绝对)URL并不重要,只有它解析的内容。