You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.0 KiB
31 lines
1.0 KiB
export function measurePerformance() {
|
|
if (typeof window === "undefined") return;
|
|
|
|
window.addEventListener("load", () => {
|
|
const perfData = performance.getEntriesByType(
|
|
"navigation",
|
|
)[0] as PerformanceNavigationTiming;
|
|
|
|
const metrics = {
|
|
dns: perfData.domainLookupEnd - perfData.domainLookupStart,
|
|
tcp: perfData.connectEnd - perfData.connectStart,
|
|
ttfb: perfData.responseStart - perfData.requestStart,
|
|
download: perfData.responseEnd - perfData.responseStart,
|
|
domInteractive: perfData.domInteractive - perfData.fetchStart,
|
|
domComplete: perfData.domComplete - perfData.fetchStart,
|
|
loadComplete: perfData.loadEventEnd - perfData.fetchStart,
|
|
};
|
|
|
|
console.log("⏱️ Performance Metrics:", metrics);
|
|
|
|
// ارسال به analytics (اختیاری)
|
|
if ((window as any).HabibApp) {
|
|
(window as any).HabibApp.postMessage(
|
|
JSON.stringify({
|
|
action: "performance_metrics",
|
|
data: metrics,
|
|
}),
|
|
);
|
|
}
|
|
});
|
|
}
|