我使用以下代码在JavaScript中动态添加脚本:
{{ items_tree | html }}
追加function loadJS(file, c, preventCache)
{
var jsEl = document.createElement("script");
if (typeof preventCache === 'undefined' || !preventCache)
jsEl.src = file;
else
jsEl.src = file + "?" + Math.floor((Math.random() * 10000));
if (c) { jsEl.addEventListener('load', function (e) { c(null, e); }, false); }
document.getElementsByTagName("head")[0].appendChild(jsEl);
}
完全禁用缓存。我想要做的是添加文件的最后修改时间的时间戳。然后可以缓存该文件,但只有在它是最新的时候。如何有效地获取文件的上次修改时间?
答案 0 :(得分:0)
据我所知,这是不可能的: Is it possible with javascript to find file's last modified time?
但是有一种比随机数更有效的方法。你可以使用像WordPress那样的版本号,或者使用不那么经常变化的东西(每小时等)。
答案 1 :(得分:0)
包含loadJS
的文件已包含在PHP中生成的时间戳。我决定在该文件中包含一个变量,其中包含上次修改任何脚本的时间。考虑到我的网站中修改了JavaScript文件,我可以在PHP中自动执行所有这些操作。为此,我将使用file_get_contents
,修改带有时间戳的行,然后file_put_contents
。这可能看起来非常低效,但考虑到,只有我能够修改JavaScript文件,我的客户都不会,但我想这就足够了。