Pregunta

Soy nuevo en la API de Google Maps y acabo de hacerme cargo de una aplicación RoR que traza hasta 2000 marcadores en un mapa usando MarkerClusterer y cada marcador tiene una ventana de información asociada.

La implementación actual crea una matriz de cadenas de contenido de la ventana de información en JavaScript y descarga JavaScript en el navegador. Sin comprimir (sin compresión de contenido del servidor), la matriz y Javascript pueden tener un tamaño de hasta 9 MB.

Los cuellos de botella de rendimiento asociados con esta implementación que he encontrado son: 1. Tiempo en el servidor para crear 2000 cadenas y colocarlas en la matriz de JavaScript. (~ 4-5 segundos) 2. Tiempo en el servidor para comprimir el JavaScript de varios megabytes antes de enviarlo al navegador. (~ 2-3 segundos)

Mi pensamiento inicial es crear una plantilla para la cadena de contenido de la ventana de información que contenga todo el formato HTML de modo que los únicos datos contenidos en la matriz de contenido de la ventana de información sean los números sin procesar reales que se mostrarán. Esto debería reducir en gran medida el tiempo de cálculo de ensamblar la matriz de cadenas de contenido en el servidor y, en consecuencia, reducir la memoria consumida por la matriz en el navegador. Además, solo es necesario abrir una ventana de información a la vez.

Al no estar familiarizado con la API de Google Maps v3, estoy buscando alguna guía sobre si esta es o no la mejor estrategia de optimización. Y cualquier sugerencia a ejemplos de código que implementen este tipo de estrategia.

Gracias de antemano,

-Scott

¿Fue útil?

Solución

Creo que no debería cargar todos los 2000 conjuntos de datos en su matriz, sino hacer una de 2 alternativas:

  1. Solo carga los marcadores y, por lo tanto, las ventanas de información que se encuentran en la ventana gráfica actual.
  2. El contenido de la ventana de información se carga mediante ajax, al hacer clic en el marcador.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top