html 网页过期时自动重新加载

cmssoen2  于 2022-12-16  发布在  其他
关注(0)|答案(3)|浏览(120)

我有一个HTML页面,标题如下:

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="expires" content="Wed, 07 Oct 2020 09:50:03 -0600" />
<meta http-equiv="pragma" content="no-cache" />

当前日期为04:45:17,我希望该页面在09:50:03时自动重新加载,此时页面的met标记中将有一个新的到期日期,我希望页面根据新日期重新加载。
我可以按一定的时间间隔重新加载,如果磁盘上的任何文件发生变化,我可以使用JavaScript重新加载,但我不知道如何根据过期头重新加载。首选PHP或JavaScript解决方案。

pgvzfuti

pgvzfuti1#

你在找这个吗?

const expiresHeader = document.querySelector("meta[http-equiv='expires']").getAttribute('content');

console.log(expiresHeader);
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="expires" content="Wed, 07 Oct 2020 09:50:03 -0600" />
<meta http-equiv="pragma" content="no-cache" />

然后你应该使用https://day.js.org/或者JS Date API这样的库来解析expires并计算当前日期和expires日期之间的差异,然后在加载DOM时基于该差异来计算setTimeout

z18hc3ub

z18hc3ub2#

已给出答案,以进一步扩展现有答案:

const expiresHeader = document.querySelector("meta[http-equiv='expires']").getAttribute('content');

let myinterval =new Date(expiresHeader).getTime() - (new Date()).getTime();
console.log("MyInterval:",myinterval);
 setInterval(function(){ refreshpage(); }, myinterval );
 
 
 refreshpage=()=>{
  window.location.reload(true);
 };
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="expires" content="Wed, 07 Oct 2020 09:50:03 -0600" />
<meta http-equiv="pragma" content="no-cache" />
3gtaxfhh

3gtaxfhh3#

const expiresHeader = document.querySelector("meta[http-equiv='expires']").getAttribute('content');

let myinterval =new Date(expiresHeader).getTime() - (new Date()).getTime();
console.log("MyInterval:",myinterval);
 setInterval(function(){ refreshpage(); }, myinterval );
 
 
 refreshpage=()=>{
  window.location.reload(true);
 };
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="expires" content="Wed, 07 Oct 2020 09:50:03 -0600" />
<meta http-equiv="pragma" content="no-cache" />

相关问题