performance.getEntries('resource') 超出内存限制

441 阅读1分钟

览器差异

chrome 浏览器当前是250条长度限制

image.png

safari 浏览器150条

超出条数限制后,新进的数据会怎么处理?

答:丢弃

多个请求同时发生,后面的请求先返回,对应的数据是在数组的什么位置?

答:先返回的数据会放入数组,但是前面的请求返回后会插到先返回的数据前面,保证拿到的数据数组的时间线是依次的

我们什么时候会遇到这类情况,并应该怎么处理?

答:一般业务不用处理,除非需要对用的性能指标数据,如果需要,那就利用对用清楚API将前面的数据清掉即可

当前请求未结束,清空数据会不会有影响

答:无,什么时候返回什么时候push进去数据

function buffer_full(event) {
    console.log(1,performance.getEntriesByType('resource'))
    console.log("WARNING: Resource Timing Buffer is FULL!");
    setTimeout(()=>{performance.clearResourceTimings();
        console.log(2,performance.getEntriesByType('resource'))})
    
  }
//   performance.setResourceTimingBufferSize(200);
performance.addEventListener('resourcetimingbufferfull', buffer_full);