Я работаю над загрузчиком карт Google (с использованием API javascript Google Maps). Я хочу динамически добавлять точки к пути, когда и когда они появятся. Редактировать: Веб-страница и javascript хранятся и загружаются локально, а не через веб-сервер.Задание динамически загруженного javascript, чтобы не кэшировать на google chrome
С этой целью я создал внешний файл javascript, в который я помещаю данные, которые я хочу использовать.
я загрузить объект Java Script, используя большой трюк я нашел в другом месте на StackOverflow:
function loadjsfile(filename, callback)
{
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", filename);
var done = false;
fileref.onload = fileref.onreadystatechange = function()
{
if(!done && (!this.readyState
|| this.readyState == "loaded"
|| this.readyState == "complete"))
{
done = true;
// Continue your code
callback();
// Handle memory leak in IE
fileref.onload = fileref.onreadystatechange = null;
document.getElementsByTagName("script")[0].removeChild(fileref);
}
};
document.getElementsByTagName("script")[0].appendChild(fileref);
}
Это прекрасно работает, как он ждет, пока внешний Javascript фактически не загружен, прежде чем приступить к intialisation.
Так что все это прекрасно, он отлично заряжается. Затем я устанавливаю 5-секундный тайм-аут, который перезагружает внешний файл javascript. Здесь у меня проблема. Google chrome перезагружает внешний файл javascript из кеша, а не переходит прямо на диск. Это огромная боль, так как это означает, что мой путь к карте не обновляется по мере продвижения. Мне это действительно нужно.
Когда я обновил всю страницу, тогда было хорошо, что она перезагрузила javascript, но мерцание было очень раздражающим (и это вынудило карту вернуться в «начальное» состояние). Этот новый метод будет отлично работать, если я могу заставить его повторно загружать файл javascript каждый раз.
Может ли кто-нибудь мне помочь?
Я новичок в Javascript (я в основном C++ кодер), поэтому извинения, если я спрашиваю что-то глупое: D
Сладкий, который, похоже, работает. Можете ли вы объяснить, почему это работает?Если я правильно понимаю, его отправка запроса на javascript, но я не понимаю, почему это заставило бы перезагрузить. – Goz
Поскольку браузер считает, что это другой файл, то есть динамически созданная страница из-за изменения URL-адреса. Я не уверен, что браузер попытается кэшировать каждый *** случайный * url **, но это может стоить испытание с меньшим образцом. – Marko
Хорошо, я думаю, я понимаю. В качестве запроса, отправленного в браузер, браузер не знает, как именно сервер вернется. Поэтому он не может использовать кешированную версию, потому что запрос может вернуть что-то совершенно другое. Строка запроса просто игнорируется, однако из-за того, что веб-браузер не знает, я не делаю ничего сложного. Это правильно? – Goz