我正在研究bookmarklets,我的问题是js没有得到更新

时间:2012-09-24 10:15:51

标签: javascript bookmarklet

我正在研究bookmarklet,我的问题是js没有得到更新

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

所以我希望它在点击书签时检查并加载最新版本。所以我想知道是否有东西要添加到js文件中,所以它得到加载最新版本。或者,如果有办法检查日期和时间或检查版本。等等

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

假设这是我的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);
    }
};

1 个答案:

答案 0 :(得分: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

相关问题