Javascript 帮助我理解<;脚本src=";some.js?param1=1;参数2=两个“/&燃气轮机;

Javascript 帮助我理解<;脚本src=";some.js?param1=1;参数2=两个“/&燃气轮机;,javascript,ajax,web-services,scripting,rest,Javascript,Ajax,Web Services,Scripting,Rest,我有时在网页上看到下面这样的块。所以我很想知道这到底是怎么回事?或者为什么它是这样写的 我只能看出它背后的几个意图 它不是页面URL(我的意思是.aspx/.php/.jsp等),所以它不是黑客代码,用户可以添加这样的代码来传递数据,而不会引起用户的注意,因为它的标签不会在UI上呈现,也不会实现旧类型的AJAX替代方案 如果用户不希望缓存JS文件(任何其他资源,如图像),这种URL参数非常有用。这是一种管理缓存的快速方法 但我无法理解以下内容 看起来像页面URL参数,但这些参数是否在J

我有时在网页上看到下面这样的块。所以我很想知道这到底是怎么回事?或者为什么它是这样写的


我只能看出它背后的几个意图

  • 它不是页面URL(我的意思是.aspx/.php/.jsp等),所以它不是黑客代码,用户可以添加这样的代码来传递数据,而不会引起用户的注意,因为它的标签不会在UI上呈现,也不会实现旧类型的AJAX替代方案
  • 如果用户不希望缓存JS文件(任何其他资源,如图像),这种URL参数非常有用。这是一种管理缓存的快速方法
但我无法理解以下内容

  • 看起来像页面URL参数,但这些参数是否在JavaScript文件中可读,并具有一些附加实用程序
  • 这些参数在这里有什么额外的作用吗
  • 在其他可能的实际场景中,可以使用这样的代码吗
因此,请提供一些与此相关的输入

谢谢,

在.JS扩展中运行非JS代码 在这种情况下,源.js文件可能(给定)实际上包含PHP/.NET代码,它可以读取这些附加值

正如你所说,避免缓存。。。
此外,人们有时会在引用元素的末尾附加一个随机字符串,以避免加载缓存数据。

使用它有三个不同的原因:

1) 根据参数在服务器中生成JavaScript文件

2) 避免缓存


3) 到

javascript文件不是静态的(它由服务器根据其查询字符串中的参数生成)

在JavaScript文件本身中,您可以让它检查自己的querystring参数(不仅是页面的参数,还包括JavaScript源url的参数)

(这与您的场景并不完全匹配,但是)您还可以在图像和脚本URL的末尾添加参数,作为版本控制的一种方式。url为=“somescript.js?V=3”的版本将由用户缓存,直到页面发生更改且url不是=“somescript.js?V=4”。无论浏览器设置如何,文件都将替换为服务器上的版本


我的猜测(不看这个具体案例)是javascript文件正在读取自己的查询字符串。我已经这样做了,而且非常有用。

实践中的一个例子是somefile.js的服务器端处理程序,它使用参数(其他脚本的名称)来确定实际需要哪些脚本,并合并/缩小它们,将它们作为单个somefile.js脚本文件返回

看起来像页面URL参数,但这些参数是否在JavaScript文件中可读,并具有一些附加实用程序

是的,用JavaScript读取它们,使用这种方法加载模块,例如:

<script type="text/javascript" src="scriptaculous.js?load=effects,dragdrop">
</script>

这些参数在这里有什么额外的作用吗? 在其他可能的实际场景中,可以使用这样的代码吗


这也可以用于服务器端脚本连接和缩小,当然,使用一些url重写技术来拥有.js扩展名,正如您所说,添加时间戳参数来破坏浏览器缓存是一种常见的技术。

url拥有'.js'意味着什么。它仍然可以由服务器端脚本(如ASP或PHP)处理。

欢迎使用StackOverflow!很好的第一个问题。记住接受你认为最有用的答案。你也可以添加时间戳作为参数,以防止客户端javascript缓存(这在某些特定场景中会有所帮助)。