Passer au contenu principal

Puis-je retarder le chargement d'Intercom sur mon site pour réduire la charge JS ?

Écrit par Beth-Ann Sher


Cette réponse provient du forum Communauté Intercom. 👌


Puis-je retarder le chargement d'Intercom sur mon site pour réduire la charge JS, c’est-à-dire ne le charger qu’après le chargement complet de la page pour un visiteur ?

Vous pouvez modifier la fonction de chargement d'Intercom en la séparant ainsi, et elle s’exécute dans une fonction setTimeout :

   // Intercom
window.intercomSettings = {
app_id: "<YOUR WIDGET ID>"
};

var w = window;
var ic = w.Intercom;
if (typeof ic === "function") {
ic('reattach_activator');
ic('update', w.intercomSettings);
} else {
var d = document;
var i = function() {
i.c(arguments);
};
i.q = [];
i.c = function(args) {
i.q.push(args);
};
w.Intercom = i;
var l = function() {
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://widget.intercom.io/widget/<YOUR WIDGET ID>';
var x = d.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
};
l();
}

La différence est que la partie qui exécute normalement l() est onLoad et qu’elle est déplacée après le setTimeout.

Vous pouvez aussi supprimer entièrement la fonction l() si vous le souhaitez (et simplement déclarer les variables, etc.) et l’exécuter, car elle sera enveloppée dans une fonction setTimeout.

Lisez cette question et d’autres ici sur Communauté Intercom.

Avez-vous trouvé la réponse à votre question ?