2

私は e コマース Web サイトを運営しており、リンクやフォームにクリック ハンドラーを追加し、追跡が確実に行われるように遅延を挿入するさまざまなサードパーティの JavaScript を使用しています。遅延は、特定の日付が 350 ミリ秒後 (Marketo / Munchkin) または Visual Website Optimizer の場合は 500 ミリ秒経過するまで、CPU を焼き付けて for または while ループを実行することによって挿入されます。合わせると約1秒!

場合によっては、追跡の信頼性を高めることができるように、遅延が適切な場合もあります。ただし、ユーザーが最大 1 秒の遅延を追加するため、サイトのほとんどのリンクをクリックしたときにこれが発生することは望ましくありません。その大きな遅延により、私たちが行った他のすべてのパフォーマンスの最適化が行われます!

残念ながら、これらのスクリプト (Visual Website Optimizer や Marketo など) の多くの機能が必要なため、それらを削除することはできません。

それらへの参照がない場合、追加したハンドラーを削除したり、それらが起動しないようにすることは可能ですか?

4

4 に答える 4

-1

純粋な JavaScript を使用して、イベント リスナーを削除できます。

プログラムの開始時に、次のように関数を呼び出してイベントリスナーを削除するだけです

var domElement = document.getElementById('elementWithEventListener');
domElement.removeEventListener('click',listener)

はい、どのリスナーが解雇されているかを調べる必要があります。

詳細については、イベント リスナーをご覧ください。

于 2015-11-21T21:00:49.310 に答える
-1

別の回避策は、 setTimeout 機能を変更して、遅延なしで、またはより短い遅延で動作するようにすることです。

window.oldSetTimeout = window.setTimeout;
window.setTimeout = function(func, delay) {
   //change the delay value here
   return window.oldSetTimeout(function() {
       func();
   }, delay);
};
于 2015-11-21T20:41:50.797 に答える