Frage

Ich bin neu in der Google Maps-API und habe gerade eine RoR-Anwendung übernommen, die mit MarkerClusterer bis zu 2.000 Markierungen auf einer Karte zeichnet. Jeder Markierung ist ein Infofenster zugeordnet.

Die aktuelle Implementierung erstellt ein Array von Infowindow-Inhaltszeichenfolgen in JavaScript und lädt das JavaScript in den Browser herunter. Unkomprimiert (ohne Komprimierung des Serverinhalts) können das Array und Javascript bis zu 9 MB groß sein.

Die von mir festgestellten Leistungsengpässe im Zusammenhang mit dieser Implementierung sind: 1. Zeit auf dem Server, um 2000 Zeichenfolgen zu erstellen und in das JavaScript-Array einzufügen. (~ 4-5 Sekunden) 2. Zeit auf dem Server, um das Multi-Megabyte-JavaScript zu komprimieren, bevor es an den Browser gesendet wird. (~ 2-3 Sekunden)

Meine Initialen dachten daran, eine Vorlage für die Infowindow-Inhaltszeichenfolge zu erstellen, die die gesamte HTML-Formatierung enthält, sodass die einzigen Daten, die im Array der Infowindow-Inhalte enthalten sind, die tatsächlich anzuzeigenden Rohzahlen sind. Dies sollte die Rechenzeit für das Zusammenstellen des Inhaltszeichenfolgen-Arrays auf dem Server erheblich reduzieren und entsprechend den vom Array im Browser verbrauchten Speicher reduzieren. Außerdem muss immer nur ein Infofenster geöffnet sein.

Da ich mit der Google Maps v3-API nicht vertraut bin, suche ich nach Anleitungen, ob dies die beste Strategie für die Optimierung ist oder nicht. Und alle Zeiger auf Codebeispiele, die diese Art von Strategie implementieren.

Vielen Dank im Voraus,

-Scott

War es hilfreich?

Lösung

Ich denke, Sie sollten nicht alle 2000 Datensätze in Ihr Array laden, sondern eine von zwei Alternativen wählen:

  1. Sie laden nur die Markierungen und damit die Infofenster, die sich im aktuellen Ansichtsfenster befinden.
  2. Sie laden den Inhalt des Infofensters per Ajax, wenn Sie auf die Markierung klicken.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top