首先我加載外部JavaScript和下面的代碼(它附加ext_chat.js
腳本源到當前的DOM)文件:如何始終刷新由AJAX加載文件,避免了緩存的文件
var protocol = ('https:' == document.location.protocol ? 'https://' : 'http://');
(function(d, t, p) {
var g = d.createElement(t),
s = d.getElementById('Chat_Script');
g.src = p + 'mydomain.lc/js/ext_chat.js';
s.parentNode.insertBefore(g, s.nextSibling);
}(document, 'script', protocol));
的ext_chat.js
內。這裏我包括CSS文件:
function r(f) {
/in/.test(document.readyState) ? setTimeout('r(' + f + ')', 9) : f()
}
r(function() {
includeCSSfile(getBaseUrl() + '/css/ext_chat.css')); // getBaseUrl() gives correct url
});
function includeCSSfile(href) {
var head_node = document.getElementsByTagName('head')[0];
var link_tag = document.createElement('link');
link_tag.setAttribute('rel', 'stylesheet');
link_tag.setAttribute('type', 'text/css');
link_tag.setAttribute('href', href);
link_tag.setAttribute('media', 'screen');
head_node.appendChild(link_tag);
}
在第一次加載時,CSS文件包含在內。在第一次加載頁面後,所有對ext_chat.css
文件的更改都不會反映出來,並且正在使用緩存文件。 如何強制每次加載頁面時重新加載CSS文件,而不是引用緩存的文件?
它無需重新加載頁面是不可能的。也許你可以通過使用javascript –
來做到這一點,而不是包含外部文件。如果你爲href添加一個時間戳,所以它是唯一的:'link_tag.setAttribute('href',href +'?timestamp ='+ Date。現在());' 如果你設置了?timestamp = 1234或者只是?1234不應該作出差異,它只需要是唯一的 – TheBalco
'link_tag.setAttribute('href',href +「?ts =」+ new Date ().getTime());'可以工作 - 注意'Date.now()'是IE9 + – mplungjan