Pour fonctionner correctement, le widget Botmind doit charger plusieurs fichiers.
Toutes les ressources chargées sont compressées, au niveau des données ainsi que pendant des transferts réseaux.
Toutes les ressources chargées sont compressées, au niveau des données ainsi que pendant des transferts réseaux.
Le premier fichier chargé est le widget.js, qui fait seulement 13Ko. Ce fichier est le seul qui peut "bloquer" le chargement de votre page, si vous le chargez dans le header (voir plus bas dans les recommendations).
Ce dernier charge ensuite le widget en lui-même de façon asynchrone dans une iframe, sans empécher le chargement de votre site.
Il est composé de différents fichiers :
Ce dernier charge ensuite le widget en lui-même de façon asynchrone dans une iframe, sans empécher le chargement de votre site.
Il est composé de différents fichiers :
- fichier html : 1Ko
- fichier CSS : 275Ko
- 4 fichiers JS (main, polyfills, runtime, scripts) : 275Ko
Si votre widget est connecté à Zendesk Chat, un fichier supplémentaire de 35Ko sera chargé (web-sdk)
Ensuite, le widget fait appel à plusieurs reprises à notre serveur pour différentes raisons :
Ensuite, le widget fait appel à plusieurs reprises à notre serveur pour différentes raisons :
- handshake : permet de créer où récupérer la session de discussion de l'utilisateur et d'initialiser le widget correctement
- is-mobile : nous detectons le type d'appareil du visiteur, et le stockons dynamiquement pour votre page analytics
- engage et engage-messages : permet permet le fonctionnement des messages d'acceuil, ou des déclencheurs
- trigger-status : permet le fonctionnement des déclencheurs
Vous verrez aussi plusieurs requêtes sur le domaine firestore.googleapis.com, qui parfois indiquent être très longues à charger, souvent 1min. Ces requêtes ne sont en faite pas longues à charger, mais utilisent une technologie HTTP long-polling de Google Firestore, qui permet de gérer le temps réel pour le chat. Quand un nouvel évenement côté serveur est envoyé au navigateur, ces requêtes se "réveillent", parfois plusieurs dizaines de secondes après leur chargement initial. Ces requêtes sont essentielles au fonctionnement du widget botmind, et contrairement à ce qu'on pourrait penser, n'ont pas d'impact sur la performance de votre site.Recommendations :
- Si votre archi le permet (par exemple si vous avez une Single Page Application), chargez le widget une seule fois, cela évitera le délai d'affichage du widget à chaque navigation, et améliorera les performances de votre site.
- Insérez le snippet de code à la fin de votre page HTML, afin que le navigateur ne le charge qu'à la fin, et n'altère donc pas la rapidité de chargement de votre site.
Améliorations prévues de notre côté :
- Supprimer la requête is-mobile, et mutualiser la fonction dans handshake
- Supprimer la requête engage-messages, et mutualiser dans engage
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.