URL 遵循以下方案
scheme://domain:port/path?query_string#fragment_id
但搜索字符串
更好的航班搜索
导致以下网址
https://www.google.co.in/#q=better+flight+search
根据 url 方案#
,后面是片段。如果我错了,请纠正我,但片段没有发送到服务器,那么谷歌如何显示搜索结果。
URL 遵循以下方案
scheme://domain:port/path?query_string#fragment_id
但搜索字符串
更好的航班搜索
导致以下网址
https://www.google.co.in/#q=better+flight+search
根据 url 方案#
,后面是片段。如果我错了,请纠正我,但片段没有发送到服务器,那么谷歌如何显示搜索结果。
正如您所意识到的,URL 的片段部分不会在 HTTP 请求中发送到服务器。相反,浏览器在本地使用它来标记文档中的位置。一些客户端框架利用这一事实并将片段用作辅助查询字符串。
因此,例如,在您使用 Google 的示例中,在 Google 页面上进行搜索会导致页面导航到类似#q=better+flight+search
. 浏览器看到更改并通知页面的 javascript URL 已更改。由于 URL 减去片段是相同的,因此浏览器不会向服务器执行请求。在这种情况下,页面的 javascript 会看到片段更改并使用它来执行 Ajax 查询以获取搜索结果。这样做可以让谷歌在不加载页面的情况下为您提供搜索结果,这对服务器和客户端(服务器,因为它不必处理提供另一个页面的开销;客户端,因为加载时间显着减少)。
对于相关的#!
看到这个问题。