shebang/hashbang 是做什么用的?

2023-11-30

除了使 AJAX 内容可供 Google 抓取外,shebangs/hashbangs 是否还有其他用途?或者就是这样?


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

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

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

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

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

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shebang/hashbang 是做什么用的? 的相关文章

随机推荐

  • 将纬度/经度存储为整数有什么好处吗?

    最近 我注意到我用于 GPS GIS 内容的一些资源 示例应用程序 博客和网站 将纬度和经度存储为整数而不是小数或字符串 我理解为什么格式化字符串不是存储纬度 经度的首选方式 但为什么不将该值存储为小数呢 存储为整数然后除以 1 000 0
  • 是否可以绕过推文对话框并直接发布到 Twitter?

    我正在使用 ShareKit 来实现 Twitter 共享 我有一个带有文本视图的视图控制器 并且希望将该文本发送到 ShareKit 中的帖子 同时绕过推文输入对话框 SHKItem item SHKItem text postText
  • 选择最大“n”值

    如果我有以下情况 include
  • LoadError - 无法打开共享对象文件 - 文件存在,但它说没有这样的文件

    Ruby 提出了LoadErrors我不明白 它抱怨打开共享对象文件 当它存在时 irb main 001 0 gt require openssl LoadError libssl so 1 0 0 cannot open shared
  • ClassNotFoundException:未找到类“com.google.android.gms.ads.AdView”

    我做了很多研究 这似乎是许多用户的常见错误 但原因却截然不同 我发现这些都不适合我 我越来越 java lang RuntimeException Unable to start activity ComponentInfo activit
  • 获取url中最后一个/之后的字符

    我想获取 url 中最后一个 之后的字符http www vimeo com 1234567 我该如何使用 php 非常简单 id substr url strrpos url 1 strrpos获取斜杠最后一次出现的位置 substr返回
  • 在 GitHub 中分叉我的存储库

    我在 GitHub 上有一个存储库 有人分叉了该仓库 并在他们的分叉中做了一些工作 我想在他们发出拉取请求以将存储库返回到我拥有的主存储库之前分叉他们的分叉来帮助他们 问题是 当我尝试分叉他们的 我的仓库 时 它不允许我将其分叉回我的 区域
  • ServletContext 资源中定义的名称为“offlineTokenServices”的 bean 定义无效 [/WEB-INF/spring-security.xml]

    谢谢你支持运行approuter打包到本地 现在运行时出现以下异常firstapp在本地 I add xs appname xs uaa clientid xs uaa identityzone xs uaa verificationkey
  • 按时间间隔合并两个 pandas 数据帧

    我有两个熊猫数据框 格式如下 df ts pd DataFrame 10 20 1 id1 11 22 5 id1 20 54 5 id2 22 53 7 id2 15 24 8 id1 16 25 10 id1 columns x y t
  • ColdFusion - java对象方法调用

    我正在尝试从我的服务器获取数据源列表 是的 我是服务器所有者 这不是黑客 我认为我通过给出两个例子混淆了这个问题 所以我正在用一个例子和堆栈跟踪编辑这篇文章 Code Create Data Source Object admin new
  • MVC 4 基于 DropDownListFor 选择更改多个显示字段

    MVC 4 根据 DropDownListFor 选择更改字段 首先 与上面的问题几乎相同 但解决方案不适用于这个问题 我有一个包含下拉列表的页面 选择后 它将根据选择更改显示字段 视图中的 javascript 是
  • 我可以从 VBScript 初始化用 JScript 编写的对象吗?

    我正在尝试编写 WSH 登录脚本 全公司的管理员需要能够自定义脚本的执行 并针对特定位置和用户执行其他脚本 为了让他们的工作更轻松 我想提供一个 API 管理员可以在他们的脚本中访问 如果我使用 JScript 编写 API 是否可以通过
  • 什么是比较两个 SQL Server 数据库的免费工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 什么是比较两个 Sql S
  • 按字母顺序对逗号分隔列表进行排序 PHP [重复]

    这个问题在这里已经有答案了 我将 PHP 变量中的数据放在逗号分隔的列表中 这是数据 其中一部分是为了节省空间 xyz Europe France Italy Spain UK US Nordic West Europe Belgium L
  • jquery.d.ts 编译失败:TsLint:超出最大行长度

    我正在使用 VS 2013 和 TypeScript 0 95 版本 但 linter 无法进行 TS 编译并出现以下错误 TsLint 已检查 app ts TsLint jquery d ts 编译失败 TsLint 超过最大行长度 1
  • 如何从数据表更新面板[重复]

    这个问题在这里已经有答案了 带有 id myButtonId2 的命令按钮工作正常 我的意思是它更新 myOutputPanel 但数据表内的命令按钮不会更新outputPanel 数据表有特定的更新样式吗
  • Stripe Connect Firebase 功能

    仔细查看后 尝试通过 swift 捕获代码 但仍然需要一个函数来触发代码以获取 Express 帐户进行连接 不会在代码尝试上浪费您的时间 因此寻找 Firebase 函数来设置 Stripe Connect 端点以进行重定向并发回代码以完
  • 提高请求的下载速度

    我正在编写一个从 Dropbox 下载一些视频的脚本 通常我的下载速度约为 150 kb 秒 这是在 Firefox 或 IDM 上使用普通下载器时的情况 但使用此 Python 脚本时 速度变得太慢 不到 10 kb 秒 这是我正在使用的
  • 在 Xcode 中禁用“/* inside block comment”警告

    我在开发时经常需要多个嵌套的多行 或 部分行 注释 Xcode 最近引入了可能是世界上最烦人的警告 它迫使我禁用 警告作为错误 我猜这个警告是为了捕获一种极其罕见的情况 即某人打字错误并导致块 注释没有结束 但 IME 还有许多其他问题会导
  • shebang/hashbang 是做什么用的?

    除了使 AJAX 内容可供 Google 抓取外 shebangs hashbangs 是否还有其他用途 或者就是这样 在 URL 中使用的哈希早在 Ajax 发明之前就已经存在了 它最初的目的是作为页面内子部分的引用 在这种情况下 例如