Другой тур Google Планета Земля каждые 24 часа (беспилотный)

У меня есть код, который генерирует новый файл KMZ каждые 24 часа (каждый тур имеет много точек и занимает около 18 часов). И у меня есть веб-страница с подключаемым модулем Google Планета Земля, который автоматически загружает и запускает тур (под названием last.kmz).

Теперь я пытаюсь настроить беспилотный компьютер в холле с браузером (Chrome), указывающим на мой сайт. Каждое утро, т.е. в 8 утра я хочу обновить веб-страницу и начать новый тур.

К сожалению, несмотря на то, что ночью я перезаписываю последний.kmz, при обновлении страницы (используя http://...etc...">) она по-прежнему продолжает использовать кешированную версию последнего.kmz.

Как я могу заставить его перезагрузить последнюю версию кмз с диска?


person andyabel    schedule 10.04.2013    source источник


Ответы (2)


Принудительная проверка кэша без проверки с использованием заголовков содержимого, если вы еще этого не сделали. Этого можно добиться, запустив файл KMZ со следующим заголовком:

Cache-Control: max-age=0, must-revalidate

Это заставит пользовательский агент немедленно считать файл устаревшим, а это значит, что при следующем запросе он не будет использовать свой кеш. На всякий случай проверьте свои текущие заголовки, так как у вас уже может быть что-то в этом заголовке - и откорректируйте соответствующим образом.

person Sébastien Renauld    schedule 10.04.2013

Два способа: вы можете просто добавить отметку времени или случайную строку запроса к URL-адресу запроса KMZ. По сути, это делает каждый запрос данных уникальным, что позволяет избежать проблем с кэшированием.

Например, вы можете создать URL-адрес своего KMZ и добавить временную метку UNIX следующим образом.

var kmz = "http://localhost/your.kmz?x=" + (new Date()).getTime();

Получение уникальных результатов, подобных этому.

http://localhost/your.kmz?x=1365635454757
http://localhost/your.kmz?x=1365635478881

Другой способ — загрузить файл KMZ с помощью сетевых ссылок (если вы еще этого не делаете), чтобы вы могли точно контролировать, когда снова проверять новые данные, избегая проблем с кэшированием. Таким образом, страницу вообще не нужно обновлять — простая сетевая ссылка в файле kml, которая указывает на ваши данные, будет работать, установив интервал обновления на количество секунд до перезагрузки файла.

Что-то типа.

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <NetworkLink>
    <name>your file</name>
    <flyToView>1</flyToView>
    <Link>
      <href>http://localhost/your.kmz</href>
      <refreshMode>onInterval</refreshMode>
      <refreshInterval>86400</refreshInterval><!-- 24 hours -->
    </Link>
  </NetworkLink>
</kml>
person Fraser    schedule 10.04.2013