суббота, 4 января 2014 г.

Как работает кэширование карт

В версии 3.1.0 было добавлено кэширование карт. Для чего это нужно? Все просто, если у вас хороший интернет, да и сидите вы в мягком кресле у себя дома, за большим компьютером, то вам особо думать об этой функции не нужно.А вот если вы выезжаете в поля, где интернет то есть то нет, то вам стоит прочитать этот раздел до конца.

Кэширование в двух словах: когда вы просматриваете карты, ее кусочки постоянно закачиваются из интернета и отображаются вам, но если включить кэширование, то можно эти кусочки сохранить локально в вашем браузере в специальном хранилище (indexedDb кому интересно) и в последствии не тратиться на трафик или если интернета нет, но в любом случае просматривать карты в независимости от обстоятельств. К тому же если вы не уверены что тот сервис с которого вы берете карты просуществует вечно, то вы можете сделать его локальную копию и наслаждаться своей неуязвимостью.

Как же включить эту чудесную функцию? Да проще некуда. На панели есть кнопка или в Меню - Настройки - Кэширование.


Появится окно:


И выбирайте тип кэширования:
  • Интернет - все карты качаются чисто из интернета, никаких кэшей
  • Интернет+Кэш - тайлы беруться из интернета, потом проверяется есть ли такой в кэше, если есть, то все хорошо, если же нет, то идет запись в кэш. Это единственный способ (пока) как можно добавить карты в кэш.
  • Кэш+Интернет - Сначала смотрится карта в кэше, если она там есть то грузится оттуда, если нет то из интернета.
  • Кэш - чисто из кэша, никакого трафика.
Для каждого режима в информационной панели (включается если ее не видно в настройках в меню) отображаются свои иконки (вам домашнее задание посмотрите какие) которые однозначно идентифицируют режим:


ВАЖНО!

Но есть одно замечание. Тайлы не будут записываться в кэш если у вас включено дополнение типа адблок (то что блокирует рекламу). Выключите его, рекламы-то все равно нет, или хотя бы разрешите доступ к katofan.info/server.php (что это ниже) и все должно стать хорошо.

Дальше идут технические подробности которые можно и не читать.

Ну во первых я написал сразу два кэширующих сервера. Зачем это нужно? Первый сервер на PHP.  Он простой как палка, тупо дергает картинку и отдает ее дальше в JSONP с картинкой закодированной в Base64. Если вам ничего это не понятно, но хочется сервер использовать свой (что только похвально), то тупо закидываете файл server.php из исходников на свой сервер с PHP и прописываете его в настройках программы. Все должно заработать.

Второй сервер написан на NodeJS. Это реализация Javascript на сервере. Я его писал в начале, но т.к. PHP несколько ближе основной массе населения, то решил написать и тот что выше. Но в чем прикол спросите вы? А прикол в том что этот сервер помимо кэширования сохраняет сами картинки карт. Это очень удобно если вы хотите во чтобы то ни стало сохранить какие-то карты. Т.е. он создает для каждого типа карт отдельную папочку и раскладывает там все скаченные тайлы. К тому же его очень просто запустить на локальном компьютере. Ставите NodeJS, с помощью npm ставите все зависимости и запускаете node app.js. Все сервер работает на 127.0.0.1:3000/cache (если нужно более подробно пишите в комментариях)

Теперь если вы решили сменить сервер, то нужно его прописать в программу. Нет ничего проще. Меню - Настройки - Установить кэширующий вервер. Пишите туда ваш адрес http://katofan.info/server.php или http://127.0.0.1:3000/cache и все.

Пока нет возможности импорта-экспорта кэша, но я работаю в этом направлении.


Комментариев нет:

Отправить комментарий