url中#有什么用

Sla*_*lay 3 javascript php iframe jquery web-applications

我意识到许多网络应用程序都#在其应用程序的 URL 中使用。

例如,谷歌分析

当我查看访问者的语言页面时,该地址位于 URL 栏中:

https://www.google.com/analytics/web/?hl=en#report/visitors-language/a33185827w60383872p61754588/
Run Code Online (Sandbox Code Playgroud)

当我查看访问者的地理位置页面时,此地址位于地址栏中:

https://www.google.com/analytics/web/?hl=en#report/visitors-geo/a33185827w60383872p61754588/
Run Code Online (Sandbox Code Playgroud)

我认为这是 Google Analytics 网络应用程序传递#report/visitors-language#report/vistiors-geo.

我知道 Google 分析正在使用<iframe>. 似乎只有主要内容框在显示内容时发生了变化。

#因为<iframe>功能而使用吗?

Aye*_*h K 5

有几个答案,但没有一个涵盖后端部分。

这是一个 URL,来自您自己的示例:

www.google.com/analytics/web/?hl=en#report/visitors-language/a33185827w60383872p61754588/
Run Code Online (Sandbox Code Playgroud)

您可以将 post-hash(包括 hash #)部分视为客户端请求。

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

对于基本网页,如果您有以下 HTML: <a name="main">welcome</a>

在位于 的网页上www.example.com/welcomewww.example.com/welcome#main将滚动浏览器视口到HTML 标记中的欢迎文本<a>

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

URL 中问号后的值称为 URL 参数,例如www.example.com/?foo=bar. Web 服务器可以根据这些值提供不同的内容。

但是,Google 开发了一种称为AJAX(同步J avaScript 和X ML)的技术,它利用URL中的部分来提供不同的内容,而无需加载页面。它没有使用.#<iframe>

使用 JavaScript,您可以触发 URL 的 post-hash 部分的更改并向服务器发出请求以获取页面的特定部分,例如对于 URLwww.example.com/welcome#main2即使命名的元素#main2不存在,您也可以使用JavaScript。

哈希棒是#!。它用于通过表明这部分是一个动态网页来使搜索引擎索引更容易。