Pergunta

Sou novo na API do Google Maps e acabei de assumir um aplicativo RoR que traça até 2.000 marcadores em um mapa usando MarkerClusterer e cada marcador tem uma janela de informações associada.

A implementação atual cria uma matriz de strings de conteúdo da janela de informações em JavaScript e baixa o JavaScript para o navegador. Descompactado (sem compactação de conteúdo do servidor), a matriz e o Javascript podem ter até 9 MB.

Os gargalos de desempenho associados a esta implementação que encontrei são: 1. Tempo no servidor para criar 2.000 strings e colocá-las no array JavaScript. (~ 4-5 segundos) 2. Tempo no servidor para compactar o JavaScript de vários megabytes antes de enviar para o navegador. (~ 2-3 segundos)

Meu pensamento inicial é criar um modelo para a string de conteúdo da janela de informações que contenha toda a formatação HTML de forma que os únicos dados contidos na matriz de conteúdo da janela de informações sejam os números brutos reais a serem exibidos. Isso deve reduzir muito o tempo de computação de montagem da matriz de strings de conteúdo no servidor e, de forma correspondente, reduzir a memória consumida pela matriz no navegador. Além disso, apenas uma janela de informações precisa ser aberta por vez.

Como não estou familiarizado com a API v3 do Google Maps, estou procurando orientação para saber se esta é ou não a melhor estratégia de otimização. E qualquer indicação para amostras de código que implementem esse tipo de estratégia.

Agradecemos antecipadamente,

-Scott

Foi útil?

Solução

Acho que você não deve carregar todos os 2.000 conjuntos de dados em sua matriz, mas fazer uma das 2 alternativas:

  1. Você carrega apenas os marcadores e, portanto, as janelas de informações que estão na janela de visualização atual.
  2. Você carrega o conteúdo da janela de informações por ajax, ao clicar no marcador.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top