損失なしでリソースタイミングデータをキャプチャする

リソースの数がリソースタイミング API によって設定された制限である 150 に達すると、ほとんどのブラウザではリソースタイミングデータのキャプチャが停止します。ただし、この制限を上書きするように、従来の Web ページ(非単一ページアプリケーション)と単一ページアプリケーション(SPA)の JavaScript エージェントを構成できます。

注: Internet Explorer については、現在、上記の JavaScript エージェント構成を使用して、ブラウザによって返されるリソースのリソースタイミング API のデフォルト制限を上書きすることはできません。

JavaScript エージェント構成は非 SPA と SPA で異なります。詳細と手順については、次のセクションを参照してください。

非 SPA のリソースタイミングバッファの設定およびクリア

非 SPA では、バッファを使用してリソースタイミングデータをキャプチャし、ビーコンがリソースタイミングデータを EUM サーバに送信した後に、バッファをクリアするフラグを設定するように JavaScript エージェントを構成できます。バッファをクリアすると、ブラウザのリソースバッファアレイがクリアされ、新しいリソースが次のビーコンで送信されるようになります。

注: リソースタイミング API をオーバーライドしてバッファをクリアすると、リソースタイミング API を使用するページの JavaScript コードに影響を与える可能性があります。したがって、リソースタイミングバッファを設定およびクリアするように JavaScript エージェントを構成することで、デフォルトをオーバーライドしない限り、JavaScript エージェントはリソースタイミング API によって設定されたデフォルトを使用します。

JavaScript 設定の例

resTiming オブジェクトは、バッファサイズ(返されるリソースの最大数)と、ビーコンが EUM サーバーに送信された後にバッファがリセットされるかどうかを構成するために使用されます。次のコードスニペットは、プロパティ bufSizeclearResTimingOnBeaconSend を使用してバッファサイズを指定し、バッファをクリアするフラグを設定する方法を示しています。

<head>
<script type='text/javascript' charset='UTF-8'>
window['adrum-config'] = {
resTiming: {
bufSize: 200,
clearResTimingOnBeaconSend: true
}
};
</script>
<script src='//cdn.appdynamics.com/adrum/adrum-latest.js' type='text/javascript' charset='UTF-8'></script>
</head>

SPA のリソースタイミングバッファのクリアの無効化

SPA の場合、JavaScript エージェントはデフォルトで、リソースタイミングバッファに空きがなくなり、ローカルバッファにデータを保存した後にリソースタイミングバッファをクリアします。リソースタイミングデータをキャプチャするためにリソースタイミングバッファがクリアされないように、JavaScript エージェントを構成できます。

注: リソースタイミングバッファがクリアされない場合、ブラウザのバッファ制限により、リソースタイミング相関で一部のリソースが欠落する可能性があります。

JavaScript 設定の例

clearResTiming のデフォルトは、true です。次に示すように clearResTimingfalse に設定すると、リソースタイミングバッファの自動クリアが無効になります。仮想ページのリソースタイミングバッファもクリアされません。

window['adrum-config'] = {
...
"spa": {
"spa2": {"clearResTiming": false}
}
}