Frage

Nur neugierig, ob die Google Maps API V3 JavaScript auf dem lokalen Server zwischengespeichert werden?

Denn manchmal laden meine Intranet -Seiten wegen langsamerer Internetverbindung langsam. Andernfalls würde die Datei vom lokalen Server geladen und nur dann verlangsamt, wenn die Kartenanforderung gestellt wird.

Ich bin sogar bereit, einen Cron -Job auszuführen, um die JavaScript -Datei hin und wieder zu aktualisieren.

Vielen Dank für jede Eingabe.

War es hilfreich?

Lösung

Es ist unmöglich "wie es ist".

Wenn Sie das Skript von Google anfordern, senden sie Header entlang des Skripts und diese Header enthält die Anweisung "No-Cache".

Wenn Sie also möchten, dass sie versäumbar sind, müssen Sie einen Proxy erstellen. Anstatt auf das Skript SRC auf Google zu zeigen, verweisen Sie auf Ihren Server. Ihr Server tätigt dann den Anruf bei Google und sendet die Antwort an den Client zurück.

Auf diese Weise haben Sie die Kontrolle über den HTTP -Header und das Caching. Sie können auch den Skriptinhalt zwischengespeichern, um weniger Verbindungen zu Google herzustellen.

Ich würde niemandem raten, dies auf einer Produktion oder einer geschäftskritischen Website zu tun. Alle Google -APIs werden häufig aktualisiert und mehr oder weniger zusammengebunden. Wenn etwas mit etwas anderem aus Synchronisation geht, fällt es Ihnen schwer, den Fehler auf Ihren Händen zu verfolgen.

Ich hoffe, das hilft.

EDIT: Ich habe gehört, Sie haben Ihre Skripte in die gesetzt HEAD Abschnitt Ihres Dokuments. Vielleicht schadet das Ihre "wahrgenommene" Seite Ladezeit. Versuchen Sie, den Download des Skripts kurz vor dem zu verschieben </body> Tag und die Karteninitialisierung in der onload Ereignis der Seite.

Mike

Andere Tipps

Ab 2016 wird der JS mit "Cache-Control: Public, max-Alter = 1800" -Header zurückgegeben, sodass es mindestens eine halbe Stunde zwischengespeichert wird.

IMHO, du kannst es nicht zwischenspeichern. Das API -Skript ruft Objekte auf dem Google -Server auf. Höchstens können Sie die Ergebnisse erfassen und als Bilder zwischenspeichern (aber dann verlieren Sie die Interaktivität).

Wenn es möglich wäre, GMAP -Ergebnisse zwischenzuspeichern, würden die Leute nur die gesamte DB von Google lokal zwischenspeichern, und ich glaube nicht, dass dies Teil der Benutzervereinbarung ist;).

Wenn Sie Offline-Karten wünschen, haben Sie mit nicht interaktiven Bildern zu tun oder einen Kartenserver zu kaufen.

Eine Option, bei der Sie nicht gegen Googles Service -Nutzungsbedingungen verstoßen würden, besteht darin, einen lokalen Cache mit OpenStreetmap -Fliesen mit dem OpenLayers -Skript für sie zu führen. Grundsätzlich verwenden Sie kostenlose Daten zum Erstellen Ihres eigenen Kartenservers.

Wenn es besondere Punkte von Interesse gibt, die für Ihr Intranet wichtig sind, können Sie sicherstellen, dass sie sich in OpenStreetMap befinden und einen Rendering -Server selbst mit nur den von Ihnen benötigten Funktionen einrichten. Schließlich wird die Überlagerung jeder Schule in einem Distrikt über einige PNGs mehr Arbeit nehmen als nur die PNGs mit den Schulen in ihnen zu zeigen.

Es würde auch viel weniger Verzögerung für eine langsame externe Verbindung dauern, wenn Ihr MAP -Server die Fliesen am Wochenende erhält/generiert, anstatt die Google Map -API ständig zu treffen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top