單頁應用程式的路由變更時序 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

單頁應用程式的路由變更時序

在傳統的多頁面應用程式中,當使用者請求載入新內容時,使用者實際上是從伺服器請求新的 HTML 網頁。因此,CloudWatch RUM Web 用戶端會使用一般效能 API 指標擷取載入時間。

但是,單頁 Web 應用程式使用 JavaScript 和 Ajax 來更新介面,而無需從伺服器載入新頁面。瀏覽器時序 API 不會記錄單頁更新,而是使用路由變更時序。

CloudWatch RUM 支援監控來自伺服器的完整頁面載入和單頁更新,但差異如下:

  • 對於路由變更時序,沒有瀏覽器提供的指標,例如 tlsTimetimeToFirstByte 等。

  • 對於路由變更時序,initiatorType 欄位將為 route_change

CloudWatch RUM Web 用戶端會監聽可能導致路由變更的使用者互動,且在記錄這類使用者互動時,Web 用戶端會記錄時間戳記。然後,如果下列項目皆為 true,路由變更時序會開始:

  • 瀏覽器歷史記錄 API (瀏覽器下一頁和上一頁按鈕除外) 用於執行路由變更。

  • 路由變更偵測的時間與最近的使用者互動時間戳記之間的差異小於 1000 ms。這可避免資料扭曲。

然後,一旦路由變更時序開始,如果沒有正在進行的 AJAX 請求和 DOM 變動,則該時序即完成。然後,將使用最近完成活動的時間戳記作為完成時間戳記。

如果正在進行的 AJAX 請求或 DOM 變動超過 10 秒 (預設情況下),路由變更時序將逾時。在此情況下,CloudWatch RUM Web 用戶端將不再記錄此路由變更的時序。

因此,路由變更事件的持續時間計算方式如下:

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