メインコンテンツにスキップ

サイトでIntercomの読み込みを遅らせてJSの負荷を減らせますか?

対応者:Beth-Ann Sher


この回答はIntercomコミュニティフォーラムからのものです。👌


サイトでIntercomの読み込みを遅らせて、訪問者のページ完全読み込み後にのみ読み込むことでJSの負荷を減らせますか?

Intercomの読み込み関数をこのように分割して、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();
}

通常実行されるl()部分はonLoadで、setTimeoutの後に実行される点が異なります。

必要に応じてl()関数を完全に取り除き(変数宣言などは残し)、setTimeout関数内で実行することも可能です。

こちらや他の質問はIntercomコミュニティでご覧ください。

こちらの回答で解決しましたか?