单页应用程序的路由更改计时 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

单页应用程序的路由更改计时

在传统的多页面应用程序中,当用户请求加载新内容时,用户实际上是在向服务器请求新的 HTML 页面。因此,CloudWatch RUM Web 客户端使用常规性能 API 指标来捕获加载时间。

但是,单页 Web 应用程序使用 JavaScript 和 Ajax 来更新界面,而无需从服务器加载新页面。浏览器计时 API 不会记录单页更新,而是使用路由更改计时。

CloudWatch RUM 支持监控来自服务器的整页加载和单页更新,但有以下区别:

  • 对于路由更改计时,没有浏览器提供的指标,例如 tlsTimetimeToFirstByte 等等。

  • 对于路由更改计时,initiatorType 字段将为 route_change

CloudWatch RUM Web 客户端监听可能导致路由变更的用户交互,当记录此类用户交互时,Web 客户端会记录一个时间戳。如果满足以下两个条件,则将开始路由更改计时:

  • 浏览器历史记录 API(浏览器前进和后退按钮除外)用于执行路由更改。

  • 路由更改检测时间与最新用户交互时间戳之间的差异小于 1000 ms。这样可以避免数据偏斜。

然后,一旦路由更改计时开始,如果没有正在进行的 AJAX 请求和 DOM 更改,则该计时结束。然后,最新完成的活动的时间戳将用作完成时间戳。

如果有持续的 AJAX 请求或 DOM 变更超过 10 秒(默认),则路由更改计时将超时。在这种情况下,CloudWatch RUM Web 客户端将不再记录此路由更改的计时。

因此,路由更改事件的持续时间按以下公式计算:

(time of latest completed activity) - (latest user interaction timestamp)