Câu trả lời:
Chỉnh sửa : Tính đến ngày 16 Tháng 11 2011, các _trackPageLoadTime
chức năng đã được tán thành và chức năng của nó đã được thiết lập như một thiết lập mặc định . (Nói về mặt chức năng, nó đã chuyển từ một tính năng chọn tham gia thành một tính năng chọn không tham gia.)
_setSiteSpeedSampleRate
là chức năng mới để đặt tỷ lệ mẫu trên tính năng này; giá trị mặc định của nó là 1
(như 1%). Để chọn không sử dụng tính năng Tốc độ trang web này, bạn phải chuyển một 0
vào chức năng này:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
Từ Trung tâm trợ giúp Google Analytics :
Báo cáo này hiện hỗ trợ các trình duyệt sau: Chrome, Internet Explorer 9 và các phiên bản trước của Internet Explorer có cài đặt Thanh công cụ của Google. Cụ thể hơn, báo cáo Tốc độ trang web yêu cầu các trình duyệt hỗ trợ giao diện HTML5 NavigationTiming hoặc đã cài đặt thanh công cụ của Google Internet Explorer
Vì vậy, nó không triển khai bộ đếm thời gian của riêng mình, giống như nhiều giải pháp homeback trước đây, để tìm ra thời gian tải một trang. Thay vào đó, nó sử dụng một tính năng HTML5 mới, hiện chỉ được hỗ trợ trong các trường hợp được liệt kê ở trên, được gọi là NavigationTiming.
CHỈNH SỬA : Tính năng này hiện đã được hỗ trợ trong Firefox 7
(Điều quan trọng cần lưu ý là nó không chạy trên mọi lần tải; thay vào đó, nó hiện lấy mẫu khoảng 2% số lần xem trang, mặc dù nó được định cấu hình để cố gắng theo dõi tất cả các lần tải trang trên 10% số lượt truy cập; vì nhiều trình duyệt hơn hỗ trợ API NavigationTiming, bạn có thể mong đợi tổng phần trăm được lấy mẫu bắt đầu tiến gần hơn đến 10%.)
Giao diện này được truy cập trong đối tượng DOM window.performance
(hoặc, trong các phiên bản Chrome trước đó, window.webkitPerformance
), sử dụng timing
thuộc tính (so, window.performance.timing
). Đối tượng lưu trữ các giá trị đo được của tất cả thời gian sự kiện tải trang chính và Google Analytics trừ 2 trong số các giá trị bên ngoài quan trọng hơn để đánh giá tốc độ tải trang.
Đối với tải Mashable.com không có bộ nhớ cache, đây là ví dụ về những gì nó đo lường (trong Chrome 11):
timing = {
connectEnd: 1306677079337,
connectStart: 1306677079337,
domComplete: 1306677083482,
domContentLoadedEventEnd: 1306677081765,
domContentLoadedEventStart: 1306677081576,
domInteractive: 1306677081576,
domLoading: 1306677079478,
domainLookupEnd: 1306677079337,
domainLookupStart: 1306677079337,
fetchStart: 1306677079337,
loadEventEnd: 1306677083483,
loadEventStart: 1306677083482,
navigationStart: 1306677079337,
redirectEnd: 0,
redirectStart: 0,
requestStart: 1306677079394,
responseEnd: 1306677079669,
responseStart: 1306677079476,
secureConnectionStart: 0,
unloadEventEnd: 0,
unloadEventStart: 0
}
Những con số đó là epoch mili giây hoặc mili giây kể từ ngày 1 tháng 1 năm 1970. Tôi chưa thấy bất kỳ tài liệu nào về những giá trị nào chúng trừ đi để tạo ra giá trị của chúng, nhưng từ việc kiểm tra sơ qua ga.js , có vẻ như loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Đối với mẫu trên, điều đó có nghĩa là nó sẽ ghi lại 4,14 giây trong _trackPageLoadTime
cuộc gọi.
Nếu tài nguyên mới được tìm nạp bằng HTTP GET hoặc tương đương, fetchStart phải trả lại thời gian ngay lập tức trước khi tác nhân người dùng bắt đầu kiểm tra bất kỳ bộ đệm ứng dụng có liên quan nào. Nếu không, nó phải trả về thời gian khi tác nhân người dùng bắt đầu tìm nạp tài nguyên.
Thuộc tính này phải trả về thời gian ngay trước khi sự kiện tải của tài liệu hiện tại được kích hoạt. Nó phải trả về 0 khi sự kiện tải chưa được kích hoạt.
Đối với những người tò mò, thứ tự có vẻ như sau:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Đối với 0 giá trị được liệt kê:
unloadEventStart
và unloadEventStart
hiển thị thời gian tải trang trước đó (nhưng chỉ khi trang đó có cùng nguồn gốc với trang hiện tại.)
redirectEnd
và redirectStart
đo độ trễ được thêm vào nếu có chuyển hướng HTTP trong chuỗi tải trang.
secureConnectionStart
dường như là một phép đo tùy chọn để đo thời gian kết nối SSL.
secureConnectionStart
là một mesurement tiêu chuẩn, nhưng nó là tùy chọn để trình duyệt (hoặc bất cứ thứ gì xử lý nội dung) báo cáo. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
vào một hàng đợi, rồi kích hoạt tất cả các hàm trong hàng đợi đó tuần tự sau khi ga.js đã tải xong. Nó cho phép bạn tảiga.js
không đồng bộ một cách an toàn .