如何获取Javascript的上次修改日期

Dmi*_*try 2 javascript ajax http

我知道,document.lastModified返回一个字符串,其中包含当前文档的上次修改日期和时间。

是否可以为脚本获取Last-Modified?

的HTML

...
<script id="myapp" type="text/javascript" src="https://test.asl.cloud/cc/js/my-app.js"></script>
...
<button onclick="myFunction()">Try it</button>
<p id="test_doc"></p>
<p id="test_js"></p>
...
Run Code Online (Sandbox Code Playgroud)

Java脚本

myFunction = function() {
 var x = document.lastModified;
 document.getElementById("test_doc").innerHTML = x;

 var se = document.getElementsByTagName('script');
 var s;
 for (var i = 0; i < se.length; i++) {
  if (typeof se[i].src !== 'undefined' && se[i].src.match('cloud')) {
   s = se[i];
   break;
  }
 }
 console.log(s);
 x = s.lastModified;
 document.getElementById("test_js").innerHTML = x;
}
Run Code Online (Sandbox Code Playgroud)

JSFiddle

Wan*_*uta 5

一种解决方法是对脚本执行AJAX请求,然后在此处读取Last-Modified标头。

var client = new XMLHttpRequest();
client.open("HEAD", "myscript.js", true);
client.onreadystatechange = function() {
  if(this.readyState == 2) {
    console.log(client.getResponseHeader("Last-Modified"));
  }
}
client.send();
Run Code Online (Sandbox Code Playgroud)

例如,上面的代码使用https://code.jquery.com/jquery-3.0.0.js代替myscript.js将会记录:

Thu, 09 Jun 2016 18:32:50 GMT
Run Code Online (Sandbox Code Playgroud)

  • 仅仅发出一个“ HEAD”请求不是更简单吗?这样您就不必下载整个内容。 (3认同)