Стратегия оптимизации для создания тысяч информационных окон на карте Google - PullRequest
0 голосов
/ 16 июня 2011

Я новичок в API Карт Google и только что принял приложение RoR, которое наносит на карту до 2000 маркеров с помощью MarkerClusterer, и каждый маркер имеет соответствующее информационное окно.

Текущая реализация создаетмассив строк информационного окна в JavaScript и загружает JavaScript в браузер.Несжатый (без сжатия содержимого сервера) массив и Javascript могут достигать 9 МБ.

Узкие места производительности, связанные с этой реализацией, которые я обнаружил: 1. Время на сервере для создания 2000 строк и размещенияих в массиве JavaScript.(~ 4-5 секунд) 2. Время на сервере для сжатия мегабайтного JavaScript перед отправкой в ​​браузер.(~ 2-3 секунды)

Моя первоначальная мысль заключалась в том, чтобы создать шаблон для строки содержимого информационного окна, содержащей все форматирование HTML, чтобы единственными данными, содержащимися в массиве содержимого информационного окна, были фактические необработанные числа.быть отображенным.Это должно значительно сократить время вычислений при сборке массива строк содержимого на сервере и, соответственно, уменьшить объем памяти, используемой массивом в браузере.Кроме того, только одно информационное окно должно быть открыто одновременно.

Будучи незнакомым с Google Maps v3 API, я ищу любые указания относительно того, является ли это лучшей стратегией для оптимизации.И любые указатели на примеры кода, которые реализуют этот тип стратегии.

Заранее спасибо,

-Scott

1 Ответ

0 голосов
/ 21 сентября 2011

Я думаю, что вам не следует загружать все 2000 наборов данных в ваш массив, а делать одну из 2 альтернатив:

  1. Вы загружаете только маркеры и информационные окна, которые находятся в текущем окне просмотра.
  2. Вы загружаете содержимое информационного окна при помощи ajax при нажатии на маркер.
...