我正在使用Google Maps JS API v3进行项目。有没有办法让地图在客户端的机器上缓存切片,这样当他们刷新浏览器时,瓷砖不必再次全部下载?
我的许多客户都在蜂窝网络连接上,重新下载地图需要相当长的时间。
谢谢!
答案 0 :(得分:11)
默认情况下,google maps会返回缓存的图片(您可以在控制台的网络标签中看到这一点)。
如果用户在缓存图像时遇到问题,可能是因为他们禁用了缓存
答案 1 :(得分:6)
这实际上可以使用HTML5及其缓存清单功能。我建议更新这个问题(和答案)。
Google编码员自己已经解决了这个问题,遗憾的是,这些信息并未得到很好的传播。
你的缓存文件看起来像(根据密苏里州):
CACHE MANIFEST
/map/mobile/examples/template.aspx
/map/mobile/examples/template.css
/map/mobile/examples/template.js
NETWORK:
http://maps.gstatic.com/
http://maps.google.com/
http://maps.googleapis.com/
http://mt0.googleapis.com/
http://mt1.googleapis.com/
http://mt2.googleapis.com/
http://mt3.googleapis.com/
http://khm0.googleapis.com/
http://khm1.googleapis.com/
http://cbk0.googleapis.com/
http://cbk1.googleapis.com/
http://www.google-analytics.com/
http://gg.google.com/
您需要完全基于HTML5,并认识到这将对您的用户产生的影响。这种情况非常方便,您的用户可以使用最新的浏览器标准/设备,也可以控制用户选择。
希望这有帮助。
答案 2 :(得分:5)
之前的答案是缓存清单功能不正确。如果您在http://www.w3.org/TR/html5/offline.html阅读规范,在“5.7.3缓存清单语法”下,您将看到清单文件的NETWORK部分实际列出了不应缓存的资源:
# here is a file for the online whitelist -- it isn't cached, and
# references to this file will bypass the cache, always hitting the
# network (or trying to, if the user is offline).
NETWORK:
comm.cgi
上一张海报的例子实际上是在说:
1)缓存以下文件:
/map/mobile/examples/template.aspx
/map/mobile/examples/template.css
/map/mobile/examples/template.js
2)从网络中获取以下内容:
http://maps.gstatic.com/
http://maps.google.com/
http://maps.googleapis.com/
http://mt0.googleapis.com/
http://mt1.googleapis.com/
http://mt2.googleapis.com/
http://mt3.googleapis.com/
http://khm0.googleapis.com/
http://khm1.googleapis.com/
http://cbk0.googleapis.com/
http://cbk1.googleapis.com/
http://www.google-analytics.com/
http://gg.google.com/