从Performance界面缺少onresourcetimingbufferfull事件

时间:2017-01-02 10:17:42

标签: typescript resource-timing-api

资源计时API具有onresourcetimingbufferfull等事件,当达到150(默认值)资源的限制时会触发该事件。 https://www.w3.org/TR/resource-timing-1/#extensions-performance-interface

lib.d.ts文件https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts中的Performance接口没有定义onresourcetimingbufferfull事件。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

当然!您可以在自己的代码中简单地扩充Performance接口:

// this does not overwrite `Performance`, it just augments it
interface Performance {
    onresourcetimingbufferfull: (e: Event) => any;
    // and/or perhaps something like
    addEventListener(type: "resourcetimingbufferfull", handler: (e: Event) => any): void;
    // in versions of TS before 2.0, you'll need to add this line also:
    addEventListener(type: string, handler: (e: Event) => any): void;
}

function bufferFull(e: Event) {
  console.log("WARNING: Resource Timing Buffer is FULL!");
  performance.setResourceTimingBufferSize(200);
}

performance.onresourcetimingbufferfull = bufferFull;
performance.addEventListener("resourcetimingbufferfull", bufferFull);

我无法找到the resourcetimingbufferfull event carried any special payload所以最简单的方法就是将其键入常规旧版Event