損失なしでリソースタイミングデータをキャプチャする
リソースの数がリソースタイミング API によって設定された制限である 150 に達すると、ほとんどのブラウザではリソースタイミングデータのキャプチャが停止します。ただし、この制限を上書きするように、従来の Web ページ(非単一ページアプリケーション)と単一ページアプリケーション(SPA)の JavaScript エージェントを構成できます。
JavaScript エージェント構成は非 SPA と SPA で異なります。詳細と手順については、次のセクションを参照してください。
非 SPA のリソースタイミングバッファの設定およびクリア
非 SPA では、バッファを使用してリソースタイミングデータをキャプチャし、ビーコンがリソースタイミングデータを EUM サーバに送信した後に、バッファをクリアするフラグを設定するように JavaScript エージェントを構成できます。バッファをクリアすると、ブラウザのリソースバッファアレイがクリアされ、新しいリソースが次のビーコンで送信されるようになります。
JavaScript 設定の例
resTiming オブジェクトは、バッファサイズ(返されるリソースの最大数)と、ビーコンが EUM サーバーに送信された後にバッファがリセットされるかどうかを構成するために使用されます。次のコードスニペットは、プロパティ bufSize と clearResTimingOnBeaconSend を使用してバッファサイズを指定し、バッファをクリアするフラグを設定する方法を示しています。
<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 です。次に示すように clearResTiming を false に設定すると、リソースタイミングバッファの自動クリアが無効になります。仮想ページのリソースタイミングバッファもクリアされません。
window['adrum-config'] = {
...
"spa": {
"spa2": {"clearResTiming": false}
}
}