.js文件后面的哈希(#)是什么意思?
What does the hash (#) mean after a .js file?
这里的哈希值(#)的意义是什么,它与.js文件有什么关系:
<script src="foo.js#bar=1"></script>
脚本后的哈希值,用于内嵌脚本进行配置。例如,请看下面提供的示例(facebook):
1. window.setTimeout(function () {
2. var a = /(connect.facebook.net|facebook.com'/assets.php).*?#(.*)/;
3. FB.Array.forEach(document.getElementsByTagName('script'), function (d) {
4. if (d.src) {
5. var b = a.exec(d.src); //RegExp.exec on the SRC attribute
6. if (b) {
7. var c = FB.QS.decode(b[2]); //Gets the information at the hash
8. ...
在脚本中,检查每个<script>
标记第3行是否在属性处出现第5行散列第2行。然后,如果哈希存在第6行,则提取第7行中的哈希数据,并继续执行该函数。
在加载脚本方面没有做任何事情。我猜测的是,脚本本身寻找自己的脚本标记,并挑选哈希(bar=1)之后的部分,并使用它来配置其行为。要做到这一点,他们可能必须循环遍历所有脚本标记并匹配src
属性。
它可能在引用的.js
文件中使用,读取原始URL并提取参数(例如使用window.location
,并解析出#
之后的内容)。
URL中哈希之后的部分称为片段标识符。如果存在,它指定整个资源或文档中的一部分或位置。当与HTTP一起使用时,它通常指定页面中的一个部分或位置,浏览器可以滚动显示页面的该部分。
相对于JavaScript文件,程序的作者很可能使用它作为向文件传递参数的方法。但是,不应该使用这种方法。url可以包含相同目的的查询字符串。
然而,将参数嵌入到JavaScript文件的URL中从来都不是一个好主意,因为对于每一个不同的参数集,URL都会被再次缓存,这是对内存的浪费。相反,最好将查询字符串设置在包含脚本本身的HTML页面的URL上。这是因为JavaScript有一个内置的属性来访问网页的查询字符串:location.search
。
相关文章:
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 这个代码是什么意思(history.replaceState和history.pushstate)
- :: 是什么意思
- 这是什么意思?getData([renderData]);
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- require('file_path')后面的后缀(模块)在javascript文件中是什么意思
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 箭头函数 '() => {}' 在 Javascript 中是什么意思?
- 在这种情况下,“foo[x]”是什么意思?
- 在 http 请求中添加事件侦听器 ( request.on ) 是什么意思?而笏就是它的用途
- 这种格式是什么意思 T00:00:00.000Z
- 这行是什么意思“ operator.indexOf(btnVal) > -1”
- JQuery:这段代码是什么意思