当前位置: 首页 > 面试题库 >

shebang / hashbang是干什么用的?

亢建白
2023-03-14
问题内容

除了使AJAX内容可抓取到Google之外,shebangs / hashbangs还有其他用途吗?还是那?


问题答案:

在URL中使用哈希时,早在发明Ajax之前就已经存在。

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

当浏览器接收到带有哈希值的URL时,仅哈希值之前的一部分地址将作为页面请求发送到服务器。哈希部分由浏览器保留以处理自身并将页面滚动到相关位置。

这就是哈希语法的初衷,因此这是您问题的直接答案。但我会继续说明一下我们如何从那里到达现在的位置…

发明Ajax时,人们开始想方设法在其网站上建立一个页面,但仍然具有人们可以在外部单击以直接访问相关内容的链接。

开发人员很快意识到,现有的哈希语法可以为他们做到这一点,因为可以从javascript中读取URL的哈希值。然后,您要做的就是阻止它在看到哈希值时滚动(这很容易),并且您有了一些URL,该URL被浏览器有效地忽略了,但是可以由javascript读取和写入。
; 非常适合与Ajax一起使用。最初,Google在搜索中包括URL的哈希部分这一事实只是幸运的收获,但由于该技术变得越来越普及,因此变得非常重要。

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

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

该术语的原始含义是在Unix脚本文件的开头使用这些符号,以告诉脚本处理器脚本是用哪种编程语言编写的。

因此,这的确是您对问题的回答,表达方式,但可能与您的意思无关,因为它与URL完全无关。



 类似资料:
  • 这个API是干啥用的阿?看不懂

  • appengine模块示例java包含appengine模块ear/src/main/application/META-INF/maven应用程序文件。xml。 > maven-application.xml什么? appenger-modes-sample-java示例的哪一部分指的是maven-application.xml还是构建系统或运行时系统寻找的常规文件? 如果这是一个约定,它的规范在

  • 本文向大家介绍webpack用来干什么的?相关面试题,主要包含被问及webpack用来干什么的?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将

  • 本文向大家介绍kafka中的broker 是干什么的?相关面试题,主要包含被问及kafka中的broker 是干什么的?时的应答技巧和注意事项,需要的朋友参考一下 broker 是消息的代理,Producers往Brokers里面的指定Topic中写消息,Consumers从Brokers里面拉取指定Topic的消息,然后进行业务处理,broker在中间起到一个代理保存消息的中转站。

  • We had assumed that Bezos was just reinvesting the profits, that's why they weren't showing up on the bottom line. 我们曾经假设贝索斯只是在重新投资他的利润。这也是为什么他们今年没有排名倒数的原因。 Last year, about this time, the first big d