Я создаю одностраничное приложение javascript и при запуске приложения использую один файл javascript для загрузки любого другого файла, который мне нужен, на лету.Когда я нажимаю «обновить», согласно Firebug, моя HTML-страница, а также страницы javascript будут загружаться с ошибкой 304 Not Modified Error, и мой 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 на сервере, а затем проверять его с помощью JS на каждой странице загрузки / обновления и использовать что-то вроде window.location.refresh (), если cookie сообщает мне, что страница загружена из кэша?