Просто любопытный, ли Google Maps API v3 javascript кэшироваться на локальном сервере?
Поскольку, иногда мои страницы интранет загружаются медленный из-за более медленного интернет-соединения. Иначе это загрузило бы файл из локального сервера и замедлилось бы только, когда запрос карты выполнен.
Я даже готов выполнить задание крона для обновления файла JavaScript время от времени.
Спасибо за любой вход.
Невозможно "как есть".
Когда вы запрашиваете скрипт у Google, они посылают заголовки вдоль скрипта, и эти заголовки содержат директиву "no-cache".
Поэтому, если вы хотите, чтобы они были кэшируемыми, вы должны создать прокси. Вместо того, чтобы направлять скрипт src в Google, вы направляете его на ваш сервер. Затем ваш сервер сделает вызов в Google и отправит ответ обратно клиенту.
Таким образом, вы получите контроль над заголовком HTTP и кэшированием. Вы можете делать кэширование на содержимом скрипта, а также делать меньше подключений к Google.
Я бы не советовал кому-то делать это на производственном или критически важном для миссии сайте. Все Google API часто обновляются и более или менее связаны друг с другом. Если что-то выходит из-под синхронизации с чем-то другим, у вас трудно отследить ошибку.
Надеюсь, это поможет.
EDIT: Я слышал, что вы помещаете свои скрипты в раздел HEAD
вашего документа. Может быть, это задевает ваше "воспринимаемое" время загрузки страницы. Попробуйте перенести загрузку скрипта непосредственно перед тегом
и инициализацией карты в событии onload
страницы.
Mike
.
ИМХО ты не можешь его кэшировать. API-скрипт вызывает объекты на сервере Google. В крайнем случае, вы можете захватить результаты и кэшировать их как изображения (но затем вы теряете интерактивность).
Если бы можно было кэшировать результаты GMap, люди просто кэшировали бы всю БД Google локально, и я не думаю, что это является частью пользовательского соглашения ;).
Если вы хотите кэшировать оффлайн-карты, вы должны сделать это с неинтерактивными изображениями, или купить картографический сервер.
.Опцией, которая не позволила бы вам нарушить Условия обслуживания Google, было бы сохранение локального кэша плиток OpenStreetMap со скриптом OpenLayers для их просмотра. В основном, используя свободные данные для создания своего собственного картографического сервера.
Если есть определенные интересные моменты, которые важны для вашей интрасети, вы можете убедиться, что они находятся в OpenStreetMap и настроить рендеринг-сервер самостоятельно с теми функциями, которые вам нужны. В конце концов, наложение каждой школы в районе на некоторые png займёт больше работы, чем просто отображение png, сделанного с этими школами.
Также потребуется гораздо меньше времени на медленное внешнее соединение, если ваш картографический сервер получит/сгенерирует плитки в выходные вместо того, чтобы постоянно нажимать на Google Map API.
.