Javascript 每24小时一次不同的谷歌地球之旅(无人驾驶)
我有一些代码,每24小时生成一个新的KMZ文件,每个巡演有很多点,大约需要18小时才能完成。我有一个Google Earth插件的网页,可以自动加载并运行名为latest.kmz的程序 现在我正试图在大厅里安装一台无人电脑,浏览器Chrome指向我的网站。每天早上8点,我希望网页刷新并开始新的旅行 不幸的是,即使我在夜间覆盖了最新的.kmz,当页面使用http://...etc...>它仍然继续使用缓存版本的latest.kmzJavascript 每24小时一次不同的谷歌地球之旅(无人驾驶),javascript,google-chrome,google-earth-plugin,page-refresh,browser-refresh,Javascript,Google Chrome,Google Earth Plugin,Page Refresh,Browser Refresh,我有一些代码,每24小时生成一个新的KMZ文件,每个巡演有很多点,大约需要18小时才能完成。我有一个Google Earth插件的网页,可以自动加载并运行名为latest.kmz的程序 现在我正试图在大厅里安装一台无人电脑,浏览器Chrome指向我的网站。每天早上8点,我希望网页刷新并开始新的旅行 不幸的是,即使我在夜间覆盖了最新的.kmz,当页面使用http://...etc...>它仍然继续使用缓存版本的latest.kmz 如何强制它从磁盘重新加载最新版本的kmz?如果您还没有使用内容头强
如何强制它从磁盘重新加载最新版本的kmz?如果您还没有使用内容头强制缓存无验证。这可以通过使用以下标头启动KMZ文件来实现:
Cache-Control: max-age=0, must-revalidate
这将强制用户代理立即考虑文件过时,这意味着在下一个请求上,它将不使用其缓存。检查当前的标题以防万一,因为该标题中可能已经有某些内容-并进行相应调整。
有两种方法,您只需将时间戳或随机查询字符串附加到KMZ请求url。这本质上使每个数据请求都是唯一的,从而避免了任何缓存问题 例如,您可以将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
另一种方法是使用networklinks加载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>