2

我正在处理书签,我的问题是 js 没有得到更新

我用我的书签加载 js 文件,我的问题是它没有更新我的最新版本。即使我已经在我的数据库中更新了它。

所以我希望它在单击书签时检查并加载最新版本。所以我想知道是否要在 js 文件中添加一些内容,以便加载最新版本。或者是否有办法检查日期和时间或检查版本。ETC

我对代码没有问题,因为它们工作正常。

假设这是我的 js

function start() {
    // codes
};


//  ---------------------------------------
//  Ajax
//  ---------------------------------------
function AJAXInteraction(url, callback) {
    var req = init();
    req.onreadystatechange = processRequest;

    function init() {
        if (window.XMLHttpRequest) {
            return new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
    }

    function processRequest() {
        if (req.readyState == 4) {
            if (req.status == 200) {
                if (callback) callback(req.responseText);
            }
        }
    }
    this.doGet = function () {
        req.open("GET", url, true);
        req.send(null);
    }
    this.doPost = function (str) {
        req.open("POST", url, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        req.send(str);
    }
};
4

1 回答 1

2

如果您将 JS 文件附加到页面,并且希望强制浏览器始终获取文件的新副本而不使用缓存,那么您可以附加任何随机文本作为查询字符串的一部分。这是示例代码。

document.body.appendChild(document.createElement('script')).src = 'http://server.com/script.js?ts=' + new Date().getTime();

或者,从中加载文件的服务器可以指定某些到期信息。为确保您始终获得最新信息,您可以指定过去某个时间的到期时间。

看看这个:Setup HTTP expires headers using PHP and Apache

于 2012-09-24T18:31:54.577 回答