2

私はブックマークレットに取り組んでいますが、私の問題は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);
    }
};
4

1 に答える 1

2

JSファイルをページに追加していて、ブラウザに常にファイルの新しいコピーを取得させ、キャッシュを使用しないようにしたい場合は、クエリ文字列の一部として任意のランダムなテキストを追加できます。これがサンプルコードです。

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

または、ファイルのロード元のサーバーで特定の有効期限情報を指定することもできます。常に最新のものを入手できるように、過去のある時点の有効期限を指定できます。

これを見てください:セットアップHTTPはPHPとApacheを使用してヘッダーを期限切れにします

于 2012-09-24T18:31:54.577 に答える