url中含有#!,代表什么?

发布于 2022-09-02 15:10:03 字数 486 浏览 20 评论 0

url:http://pubs.rsc.org/en/journals/journalissues/cc#!recentarticles&adv

一般情况下,#代表锚点,是提示给浏览器用的,服务器是不认的。

我的问题是:我在浏览器地址栏中输入http://pubs.rsc.org/en/journals/journalissues/cc,浏览器会自动补全#!recentarticles&adv

既然服务器不认#后面的内容,那浏览器是如何自动补全#!recentarticles&adv的?

ref:http://www.ruanyifeng.com/blog/2011/03/url_hash.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

浅忆流年 2022-09-09 15:10:03

#!recentarticles&adv可以通过JS脚本添加上去,用于控制当前页面内容的显示及请求数据内容,在单页面应用中会使用到~~~
例如:
http://myApp.com/#!login -->显示登录画面
http://myApp.com/#!prefenece-->显示个人设置画面
http://myApp.com/#!product=1234-->显示某个产品的详细信息等

具体的语义自己通过JS来解析

鸵鸟症 2022-09-09 15:10:03

路由。
典型的单页应用路由设置,#!后面的内容对应不同的路由,其js通过判断路由的变化作出不同的响应,实现功能的切换。
再者,#!是Google推出的可供其搜索引擎爬虫识别的信号。通过这个形式,Google的爬虫会把#!后面的路由地址识别成不同的地址,叫做hashbang,去请求不同的内容,有别于传统爬虫无法识别#后面的内容。
简单来说,就是Google的SEO。这句话不全对,但可以理解为这么个意思。

温折酒 2022-09-09 15:10:03

我在router技术中看到这种情况,好像是可以去掉的,开启本地缓存还要进行设置,这是开发方进行的程序

清秋悲枫 2022-09-09 15:10:03

url中的#用法,是单页面的前端路由控制使用的,主要使用了H5中pushState方法,可以在页面不刷新的情况下,修改url地址并调用js函数,切换到不同的页面功能。

url中的#后面的内容,不是浏览器自动补全的,是页面的路由加载后,路由函数会显示默认页面的hashbang

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文