Ir al contenido principal

¿Puedo retrasar la carga de Intercom en mi sitio para reducir la carga de JS?

Escrito por Beth-Ann Sher


Esta respuesta proviene del foro de la Comunidad Intercom. 👌


¿Puedo retrasar la carga de Intercom en mi sitio para reducir la carga de JS, es decir, cargarlo solo después de que la página esté completamente cargada para un visitante?

Puedes modificar la función de carga de Intercom dividiéndola así, y se ejecuta dentro de una función 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 diferencia es que la parte que ejecuta l() normalmente es onLoad y eso se altera después del setTimeout.

También puedes eliminar completamente la función l() si quieres (y solo declarar las variables, etc.) y ejecutarla, ya que estará envuelta en una función setTimeout.

Lee esta y otras preguntas aquí en Comunidad Intercom.

¿Ha quedado contestada tu pregunta?