gpt4 book ai didi

ajax - shebang/hashbang 有什么用?

转载 作者:行者123 更新时间:2023-12-02 05:38:42 32 4
gpt4 key购买 nike

除了让 Google 可以抓取 AJAX 内容之外,shebangs/hashbangs 是否还有其他用途?还是它?

最佳答案

在 Ajax 发明之前很久就已经存在 URL 中使用的散列。

它最初是作为对页面中子部分的引用。在这种情况下,例如,您会在页面顶部有一个目录,每个目录都是指向同一页面部分的散列链接。当您单击这些链接时,页面将向下(或向上)滚动到相关标记。

当浏览器收到一个带有散列的URL时,只有散列之前的地址部分作为页面请求发送到服务器。 hash部分由浏览器保存,自行处理,将页面滚动到相关位置。

这就是散列语法的最初用途,因此这是对您问题的直接回答。但我会继续解释一下我们是如何从那里走到现在的……

当 Ajax 被发明时,人们开始想找到在他们的站点上拥有单个页面的方法,但仍然有人们可以在外部单击以直接访问相关内容的链接。

开发人员很快意识到现有的散列语法可以为他们做到这一点,因为可以从 javascript 中读取 URL 的散列值。然后你所要做的就是在它看到散列时停止它滚动(这很容易),并且你有一些 URL 被浏览器有效地忽略,但可以通过 javascript 读取和写入;非常适合与 Ajax 一起使用。 Google 在其搜索中包含 URL 的哈希部分这一事实一开始只是一个幸运的奖励,但随着该技术变得更加广泛,它变得非常重要。

我注意到人们称这种哈希语法为“shebang”或“hashbang”,但从技术上讲这是不正确的;它只是一个相关的散列——“hashbang”这个词的“bang”部分指的是一个感叹号(“bang”是打印行业的一个术语)。有些网址可能确实在hash后面加了一个感叹号,但只有hash与浏览器有关;后面的字符串完全取决于网站的作者;它可能包含感叹号,也可能不包含感叹号,但无论哪种方式,浏览器都不会对其执行任何操作。如果您愿意,可以随意将其称为 hashbang 或 shebang,但要明白只有 hash 才是重要的。

实际术语“shebang”或“hashbang”可以追溯到更远的地方,并且确实指的是 #! 语法,但不是在 URL 的上下文中。

这个术语的原意是这些符号用在 Unix 脚本文件的开头,告诉脚本处理器脚本是用什么编程语言编写的。

所以这确实是您问题的答案,您的措辞方式,但可能不是您的意思,因为它与 URL 完全无关。

关于ajax - shebang/hashbang 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7846073/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com