Question

Juste curieux, si la version 3 de l'API Google Maps javascript être mis en cache sur le serveur local?

Parce que, parfois mes pages intranet sont chargement lent en raison de la connexion Internet plus lente. Dans le cas contraire, il charger le fichier du serveur local et ralentir uniquement lorsque la demande de carte est faite.

Je suis même prêt à exécuter une tâche cron pour mettre à jour le fichier javascript de temps en temps.

Merci pour toute entrée.

Était-ce utile?

La solution

Il est impossible "tel quel".

Lorsque vous demandez le script de Google, ils envoient des en-têtes le long du script et les en-têtes contient la directive "no-cache".

Donc, si vous voulez qu'ils soient cachable, vous devez créer un proxy. Au lieu de pointer le script src à Google, vous pointez sur votre serveur. Votre serveur puis effectuer l'appel à Google et envoyer la réponse au client.

De cette façon, vous aurez le contrôle sur l'en-tête HTTP et la mise en cache. Vous pouvez faire la mise en cache sur le contenu du script et de faire moins de connexions à Google.

Je ne conseillerais pas quelqu'un de le faire sur une production ou une mission site critique. Toutes les API Google sont mis à jour fréquemment et sont liés plus ou moins ensemble. Si quelque chose va désynchronisé avec quelque chose d'autre, vous avez un disque à suivre bug sur vos mains.

L'espoir qui aide.

EDIT: Je vous ai entendu mettiez vos scripts dans la section HEAD de votre document. peut-être thats nuire à votre « perçu » le temps de chargement de page. Essayez de déplacer le téléchargement du script juste avant la balise </body> et l'initialisation de la carte en cas de onload de la page.

Mike

Autres conseils

En 2016, les js est retourné avec "Cache-Control: public, max-age = 1800". En-tête, il est mis en cache pendant au moins une demi-heure

à mon humble avis, vous ne pouvez pas le mettre en cache. Le script API appelle des objets sur le serveur Google. Tout au plus, vous pouvez capturer les résultats et les mettre en cache sous forme d'images (mais vous perdez l'interactivité).

S'il serait possible de mettre en cache les résultats GMap, les gens tout en cache toute la DB de Google localement et je ne pense pas que cela fait partie de l'accord de l'utilisateur;).

Si vous voulez des cartes hors ligne, vous aurez à faire avec des images non interactives, ou acheter un serveur cartographique.

Une option qui ne vous aurait pas conformes aux conditions d'utilisation de Google serait de garder un cache local des tuiles OpenStreetMap avec le script OpenLayers pour les visualiser. En fait, à partir des données libres pour créer votre propre serveur cartographique.

S'il y a des points d'intérêt particuliers qui sont importants pour votre intranet, vous pouvez vous assurer qu'ils sont en OpenStreetMap et configurer un serveur de vous-même rendu avec seulement les fonctionnalités dont vous avez besoin. Après tout, superposant chaque école dans un quartier sur une png va prendre plus de travail puis juste montrer fait de l'.png avec les écoles en eux.

Il serait également prendre beaucoup moins de décalage sur une connexion lente à l'extérieur si votre serveur de cartes reçoit / génère les tuiles pendant le week-end au lieu de frapper l'API Google Map tout le temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top