Comme vous le savez peut-être, de nombreux sites intègrent Google Maps au bas de la page, alors que je ne le fais pas normalement moi-même, j'ai été chargé de cette tâche. J'ai procédé par la route paresseuse consistant à incorporer l'iframe au bas de la page.
Cependant, j'ai remarqué que la vitesse de page a augmenté, passant de 0,85 seconde de temps de chargement à 1,95 seconde, grâce à 59 demandes supplémentaires envoyées via la iframe
, totalisant environ 370 Ko/s. Certes, 1,95 seconde sera plus qu’acceptable pour moi, mais j’aime les choses très vite et s’il est possible de perdre du temps, c’est génial.
Donc ma question est simple, est-ce que l'API est plus rapide? Je n'en ai aucune idée, je ne l'ai jamais utilisée, mais si quelque chose est utilisé, peut-il indiquer si c'est A) plus rapide et B) réduit les requêtes côté serveur .
Il est à noter que Google Maps se trouve en bas de la page, le reste de la page s'affiche alors sans aucun problème. L'autre chose que je peux envisager d'accélérer est simplement de servir un fichier statique sous forme de carte, puis de le faire cliquer - mais le client insiste pour que Google Maps sur toutes les pages avec une annotation de schéma améliore l'adresse. Je ne vais pas m'agréger avec le gars, trop chaud pour cette banane: P.
Les IFrame sont par nature plus lents en raison de la surcharge qu'ils ajoutent lors du rendu d'une nouvelle page dans la fenêtre du navigateur. Et certains navigateurs rendent plus lentement le rendu d'iFrame que d'autres (c'est-à-dire, IE).
Comme le montre le graphique ici , la création d'éléments par les iFrames peut coûter jusqu'à 100 fois plus de temps que de scripts et de styles.
IFrame bloquera également l'événement onload
d'une fenêtre jusqu'à ce que toutes les ressources de l'iFrame soient complètement chargées, ce qui entraînera la poursuite du statut de chargement du navigateur, ce qui donnera l'impression que le reste de la page est également plus lent. Une façon de contourner ce problème consiste à utiliser JavaScript pour définir de manière dynamique le src
de l'iFrame. D'autres techniques sont discutées ici .
De plus, le nombre de connexions à un serveur Web est partagé entre la page contenant et iFrame, ce qui limite les connexions disponibles pour la page contenant et ralentit son chargement. Vous pouvez également utiliser JavaScript pour contourner ce problème en chargeant le src
de l'iFrame une fois le chargement du contenu de la page contenant terminé terminé.
Enfin, les instances de navigateur pour les fenêtres avec iFrames ont généralement une mémoire plus grande, ce qui réduit les ressources système du client (si cela s’inquiète également).
Donc, oui, l'API affichera un rendu plus rapide que l'iFrame et, en fonction de la manière dont vous intégrez l'iFrame, le chargement de la page dans son ensemble pourrait également être plus rapide.
Cependant, l’avantage d’utiliser un iFrame est que toutes ses ressources proviendront de l’hôte src
, ce qui permettra de conserver les ressources pour votre serveur. Pour cette raison, et pour la simplicité de l'intégration, la plupart optent pour l'utilisation d'iFrames, ce qui réduit également la nécessité de surveiller les modifications de l'API.
Je n'ai aucune expérience spécifique de l'API Google Maps, je ne peux donc pas vous dire si elle est réellement plus rapide que la iframe
. Je suppose que cela ne serait pas plus rapide car il doit télécharger toutes les mêmes données sans la iframe
elle-même.
Je peux dire que vous ne devriez pas vous inquiéter de la différence entre un temps de chargement de une et deux secondes lorsque le temps de chargement supplémentaire ne sera pas évident pour les utilisateurs. Google ne commence pas à pénaliser les sites spécifiquement pour le chargement lent tant que le site ne se situe pas entre 7 et 10 secondes. La plupart des utilisateurs ne semblent pas commencer à se détourner d'un site qu'ils perçoivent comme un chargement lent avant environ 3 secondes. Après 3 secondes, vous commencez à perdre de plus en plus d'utilisateurs. À deux secondes, vous êtes très utilisable. Et dans votre cas, avec la carte au bas de la page dans un iframe
les utilisateurs ne devraient même pas le remarquer. La seule exception serait que si vous avez du javascript qui exécute onload, auquel cas l'iframe retarderait ce traitement.