我想在不同的场合发送一个CustomEvent。网上的大多数示例只创建和发送一次CustomEvents。我想知道如何正确地做到这一点。
在此示例中,“A-Button”一遍又一遍地调度同一事件。
var targetA = document.getElementById('targetA');
var targetB = document.getElementById('targetB');
var evtA = new CustomEvent("myEvent");
function a(){
targetA.dispatchEvent(evtA);
}
function b(){
targetB.dispatchEvent(new CustomEvent("myOtherEvent"));
}
targetA.addEventListener("myEvent", function(e){
console.log(e);
console.log(e.timeStamp);
});
targetB.addEventListener("myOtherEvent", function(e){
console.log(e);
console.log(e.timeStamp);
});
<button onclick="a()">A</button>
<button onclick="b()">B</button>
<div id="targetA"></div>
<div id="targetB"></div>
A方法的副作用可能是时间戳未更新。这可能会导致依赖于时间戳的处理程序出现意外行为。
B方法可能性能较差,因为CustomEvent对象反复实例化。 (记忆应该不是问题。)
是否有“正确”的方式,还是有最佳做法?