Google Maps v3 - Кэширование фрагментов карты на клиенте? - PullRequest
16 голосов
/ 16 ноября 2011

Я использую Google Maps JS API v3 для проекта. Есть ли способ попросить карту кэшировать тайлы на компьютере клиента, чтобы при обновлении браузера не приходилось загружать все тайлы снова?

Многие из моих клиентов подключены к сотовой сети, где повторная загрузка карты занимает значительное время.

Спасибо!

Ответы [ 3 ]

11 голосов
/ 16 ноября 2011

По умолчанию Google Maps возвращает кэшированные изображения (вы можете увидеть это на вкладке сети консоли).

enter image description here

Если у пользователя возникают проблемы с кэшированием изображений, возможно, это связано с тем, что он отключил кэш

6 голосов
/ 24 января 2012

Это на самом деле возможно с HTML5 и его функцией манифеста кэша.Я бы посоветовал обновить этот вопрос (и ответить).

Сами кодировщики Google решили эту проблему, и, к сожалению, информация не очень хорошо распространена.

Необходимые показания

  1. Сначала взгляните на пост в блоге Google Code здесь: http://googlecode.blogspot.com/2010/04/google-apis-html5-new-era-of-mobile.html
  2. Затем прочитайте на собственном посту штата Миссури: http://blogs.missouristate.edu/web/2010/05/12/google-maps-api-v3-developing-for-mobile-devices/

Техника

  • Вы должны кэшировать каждый URL, используемый Google Maps
  • Использовать методы для борьбы с упрямыми методами кэширования Chrome и Firefox, удаляя его с "автономных веб-сайтов"
  • Все настройки должны быть на стороне клиента в javascript

Ваш файл кэша будет выглядеть (согласно штату Миссури):

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 и учитывать влияние, которое это окажет на ваших пользователей.Эта ситуация удобна, когда ваши пользователи либо в курсе последних стандартов / устройств для браузера, либо у вас есть контроль над выбором пользователя.

Надеюсь, это поможет.

5 голосов
/ 11 ноября 2012

Предыдущий ответ о неправильном использовании функции манифеста кэша.Если вы прочитаете спецификацию в 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/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...