Остановить загрузку Javascript и HTML из кэша

Я создаю одностраничное javascript-приложение, и когда приложение запускается, я использую один javascript-файл для загрузки всех остальных файлов, которые мне нужны, на лету. Когда я нажимаю «Обновить», в соответствии с firebug моя HTML-страница, а также страницы javascript загружаются с ошибкой 304 Not Modified, и мой javascript перестает работать.

Я понимаю, что это связано с кешированием браузера, но как этого избежать? Я загружаю начальную HTML-страницу с помощью одного вызова сценария

<script src="js/config.js" type="text/javascript"></script>

, а затем продолжаю динамически загружать остальные из этого сценария

window.onload = function () {
    var scripts = ['http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js', 'js/core.js', 'js/sandbox.js']; //Application scripts
    var loaded = 0;
    //Callback is executed after all scripts have been loaded.
    var callback = function () {
        if (loaded + 1 == scripts.length) {
            //Create Modules
            CORE.loader("js/modules/Login.js", function () {
                CORE.createModule('loginForm', Login);
            });

            //Create HTML bindings.
            CORE.createBinding('appContainer', '#Login', 'login.html');
            CORE.bindHTML(window.location.hash); //Loads hash based page on startup
        } else {
            loaded++;
            loadScript(scripts[loaded], callback);
        }
    };

    loadScript(scripts[0], callback);

    function loadScript(scriptSrc, callback) {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.async = true;
        script.src = scripts[loaded];

        if (script.readyState) {
            script.onreadystatechange = function () {
                if (script.readyState == 'loaded' || script.readyState == 'complete') {
                    script.onreadystatechange = null;
                    callback();
                }
            };
        } else {
            script.onload = function () {
                callback();
            };
        }

        document.getElementsByTagName('head')[0].appendChild(script);
    }
};

. Я знаю, что Gmail использует файлы cookie, чтобы предотвратить это. Кто-нибудь знает, как использовать этот подход? Должен ли я установить файл cookie на сервере, а затем проверять его с помощью JS при каждой загрузке/обновлении страницы и использовать что-то вроде window.location.refresh(), если файл cookie сообщает мне, что страница загружается из кеша?

6
задан ryandlf 29 March 2012 в 12:24
поделиться