Я использую Google Maps JS API v3 для проекта. Есть ли способ попросить карту кэшировать тайлы на компьютере клиента, чтобы при обновлении браузера не приходилось загружать все тайлы снова?
Многие из моих клиентов подключены к сотовой сети, где повторная загрузка карты занимает значительное время.
Спасибо!
По умолчанию Google Maps возвращает кэшированные изображения (вы можете увидеть это на вкладке сети консоли).
Если у пользователя возникают проблемы с кэшированием изображений, возможно, это связано с тем, что он отключил кэш
Это на самом деле возможно с 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 и учитывать влияние, которое это окажет на ваших пользователей.Эта ситуация удобна, когда ваши пользователи либо в курсе последних стандартов / устройств для браузера, либо у вас есть контроль над выбором пользователя.
Надеюсь, это поможет.
Предыдущий ответ о неправильном использовании функции манифеста кэша.Если вы прочитаете спецификацию в 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/