Passar para o conteúdo principal

Posso atrasar o carregamento do Intercom no meu site para reduzir a carga de JS?

Escrito por Beth-Ann Sher


Esta resposta vem do fórum da Comunidade Intercom. 👌


Posso atrasar o carregamento do Intercom no meu site para reduzir a carga de JS, ou seja, só carregá-lo após a página estar totalmente carregada para o visitante?

Você pode modificar a função de carregamento do Intercom dividindo-a assim, e ela será executada dentro de uma função 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();
}

A diferença é que a parte que executa l() normalmente é onLoad e isso é afetado após o setTimeout.

Você também pode remover completamente a função l() se quiser (e apenas declarar as variáveis etc) e executá-la, pois estará dentro de uma função setTimeout.

Leia esta e outras perguntas aqui na Comunidade Intercom.

Respondeu à sua pergunta?