【问题标题】:Call a js with GET parameters使用 GET 参数调用 js
【发布时间】:2013-06-24 11:11:37
【问题描述】:

我需要有人来启发我。 我看过这个:

<script src="http://host.com/file.js?no_forms=1"></script>

这是什么意思?传递给 javascript 文件的 GET 参数? 在哪些条件下可以做到这一点? 这是什么方法?

任何帮助将不胜感激。

【问题讨论】:

  • 每次向服务器发出请求时,都会将最新版本的js文件下载到客户端。每当您对js文件进行任何更改时,您都不必清除浏览器缓存以影响js更改,如果您在url后面指定参数,它将自动从服务器获取最新版本的文件。
  • @FelixKling 如果没有其他原因在获取 .js 文件时传递 GET 参数,是的,我认为这是重复的。感谢您的警告。

标签: javascript get


【解决方案1】:

?no_forms=1只是一个查询字符串参数。我只说一下这些东西的常见用法。

  • 用于避免缓存(获取新的更新版本的JS)
  • 某种重定向
  • 甚至一些应用程序的使用想法。

【讨论】:

  • 好吧,事实上这似乎是用法-避免caching;因为我在开发环境中,而 file.js 正在被其他团队更改很多。
【解决方案2】:

有时该参数仅用于防止客户端缓存。

也可能是请求file.js 实际上被重写为动态调用(比如script.php?file=file.js&amp;no_forms=1),它正在获取正确的文件并以某种方式使用额外的参数。

【讨论】:

  • 就像我对@Ravi 说的那样,这似乎是一种用法 - 避免使用caching。非常感谢。
【解决方案3】:

你可以用这个

<script src="http://host.com/file.js" no_forms="1"></script>

function $_GET(q,s) {
    s = s || window.location.search;
    var re = new RegExp('&'+q+'=([^&]*)','i');
    return (s=s.replace(/^\?/,'&').match(re)) ? s=s[1] : s='';
}

并得到结果

var noForms = $_GET('no_forms');

【讨论】:

  • 这将使 HTML 结构无效,因为该属性不在 HTML 标准中。
  • NP,使用“data-no-forms”
猜你喜欢
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 2011-12-16
  • 2013-10-17
  • 2022-01-24
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
相关资源
最近更新 更多