JavaScript 文件名后面的问号("?")代表什么意思?

13

例如,有:

<script type="text/javascript"
        src="http://somedomain.com/js/somejs.js?14">
</script>

那么这里的"?14"是什么意思呢?


http://en.wikipedia.org/wiki/Query_string - Mike Ruhlin
6个回答

20

这个是类似于网址参数的一个参数。有时候JS脚本是通过服务端技术实时创建的,有时候也只是一个版本号,用于帮助浏览器缓存。


+1 我们也用这个来解决浏览器缓存问题。 :-) - Malax
1
+1,必须是 JavaScript 文件的版本号,用于强制从浏览器刷新。 - Kedare

10

它们存在的目的是为了欺骗浏览器,让其认为这是一个新文件。

这是一种技巧,可避免在更新JS文件时使用浏览器缓存副本。


+1个好点,我认为这是一个孤立的整数会呆在那里的最有可能的原因。 - Aaron Anodide
没想到这个。很久没有使用这种方法了。 - Stephen

2

这意味着通过 GET 将一个变量传递给脚本,尽管标准的 JavaScript 文件不支持任何收集变量的方式。

然而,你可以编写一个服务器脚本,在 PHP 或 ASP.NET 中将内容类型设置为 application/x-javascript

例如在 PHP 中:

// file: external.php
<?php header("content-type: application/x-javascript"); ?>
// regular javascript here that uses $_GET['variable'];

然后你可以将以下内容放入你的HTML脚本标签中:
<script type="text/javascript" src="external.php?variable=14"></script>

1

这个 JavaScript 脚本很可能是由服务器端脚本(PHP、CGI 等)生成的,该脚本将 14 作为参数。


1

这是一个查询参数,因为浏览器将向somedomain.com发出http get请求以获取javascript源代码。

如果您使用类似Fiddler的头部浏览器加载页面,您将看到正在发生的情况。


0
在我看来,像这样的JavaScript源代码将从服务器请求“动态”内容,因此服务器不会尝试使用缓存版本的JavaScript文件。参数是否真的重要取决于服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接