强制JavaScript每天重新加载一次

Force JavaScript reload just once a day

本文关键字:JavaScript 一次 加载 新加载 强制 每天      更新时间:2023-09-26

如果JavaScript的?随机将是当前日期-然后每天只加载一次吗?

<script type="text/javascript" src="http://external.example.com/bookmarklet.js?random"></script>

我提出这个问题的背景是,我不希望它永远留在缓存中,但我也在寻找一种方法来节省一些带宽并加快速度。感谢

在包含的js文件名末尾添加日期或时间戳确实会使其重新加载(如果用户的浏览器缓存了该文件名)。

如果你想使用JavaScript来创建这个时间戳,你可以动态地包括你的外部js文件,比如:

var the_time=新日期();var fileref=document.createElement('script');fileref.setAttribute("type","text/javascript");fileref.setAttribute("src","test.js?"+_time.getDate()+_time.getMonth()+_time.getFullYear());document.getElementsByTagName("head")[0].appendChild(fileref);

我选择了根据日期、月份和年份制作时间戳,所以它每天都会变化。

如果你的页面是用PHP生成的,你可以这样做:

<script src="http://external.example.com/bookmarklet.js?<?php echo date('Ymd'); ?>"  type="text/javascript"></script>

仅当时间戳调整为一天中的某个时间(例如午夜)时。这在HTML中无法完成,但我发现了一些PHP可以完成这项工作:来自PHP Freaks

是的,这应该完全符合您的需要,只需注意您只写日期部分,没有写时间。

甚至比每天一次更好,我认为无论何时javascript更改,或者作为近似值,当升级或重新启动应用程序时,都需要刷新客户端的缓存。不确定PHP中的最佳实践是什么,但在Python中,我会在应用程序启动时生成一个随机变量,将其存储在全局变量中,并在您提供的资源的每个URL中使用,无论是JS还是CSS。像jQuery或YUI等库只需要在有新版本时重新加载,并且您可能希望从CDN提供它们。