Jawaban:
Mengedit : Per 16 November 2011, yang _trackPageLoadTime
fungsi telah usang dan fungsionalitas telah ditetapkan sebagai pengaturan default . (Secara fungsional, ini telah berubah dari fitur opt-in menjadi fitur opt-out.)
_setSiteSpeedSampleRate
adalah fungsi baru untuk mengatur laju sampel pada fitur ini; nilai defaultnya adalah 1
(seperti dalam 1%). Untuk memilih tidak menggunakan fitur Kecepatan Situs ini, Anda harus meneruskan 0
ke fungsi ini:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
Dari Pusat Bantuan Google Analytics :
Laporan ini sekarang mendukung browser berikut: Chrome, Internet Explorer 9 dan versi Internet Explorer sebelumnya dengan Google Toolbar terpasang. Lebih khusus lagi, laporan Kecepatan Situs memerlukan browser yang mendukung antarmuka Waktu Navigasi HTML5 atau telah memasang bilah alat Google Internet Explorer
Jadi, itu tidak menerapkan pengatur waktunya sendiri, seperti banyak solusi rumah sebelumnya, untuk mencari tahu berapa lama waktu yang dibutuhkan untuk memuat halaman. Sebagai gantinya, ia menggunakan fitur HTML5 baru, yang saat ini hanya didukung dalam kasus yang tercantum di atas, yang disebut NavigationTiming.
EDIT : Ini sekarang didukung di Firefox 7
(Penting untuk diperhatikan bahwa ini tidak berjalan pada setiap pemuatan; sebagai gantinya, saat ini mengambil sampel sekitar 2% dari tayangan laman, meskipun dikonfigurasi untuk mencoba melacak semua pemuatan laman pada 10% kunjungan; karena lebih banyak browser mendukung API Waktu Navigasi, Anda dapat mengharapkan persentase total sampel mulai mendekati 10%.)
Antarmuka ini diakses di bawah objek DOM window.performance
(atau, di versi Chrome sebelumnya, window.webkitPerformance
), menggunakan timing
atribut (so, window.performance.timing
). Objek menyimpan nilai terukur dari semua waktu peristiwa pemuatan halaman utama, dan Google Analytics mengurangi 2 nilai terluar yang lebih penting untuk menilai kecepatan pemuatan halaman.
Untuk memuat Mashable.com tanpa cache, berikut adalah contoh yang diukurnya (di 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
}
Angka-angka itu adalah epoch milidetik, atau milidetik sejak 1 Januari 1970. Saya belum melihat dokumentasi tentang nilai mana yang mereka kurangi untuk menghasilkan nilainya, tetapi dari pemeriksaan sepintas ga.js , sepertinya itu adalah loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Untuk contoh di atas, itu berarti akan merekam 4,14 detik dalam _trackPageLoadTime
panggilan.
Jika sumber daya baru akan diambil menggunakan HTTP GET atau yang setara, fetchStart harus mengembalikan waktu tepat sebelum agen pengguna mulai memeriksa cache aplikasi apa pun yang relevan. Jika tidak, ini harus mengembalikan waktu ketika agen pengguna mulai mengambil sumber daya.
Atribut ini harus mengembalikan waktu segera sebelum peristiwa pemuatan dokumen saat ini diaktifkan. Itu harus mengembalikan nol ketika peristiwa pemuatan belum diaktifkan.
Bagi pihak yang penasaran, urutannya tampaknya sebagai berikut:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart, loadEventEnd
Untuk 0 nilai yang terdaftar:
unloadEventStart
dan unloadEventStart
menunjukkan waktu pembongkaran pemuatan halaman sebelumnya (tetapi hanya jika halaman tersebut memiliki asal yang sama dengan halaman saat ini.)
redirectEnd
dan redirectStart
mengukur latensi yang ditambahkan jika ada pengalihan HTTP di rantai pemuatan halaman.
secureConnectionStart
tampaknya merupakan pengukuran opsional untuk mengukur waktu koneksi SSL.
secureConnectionStart
adalah ukuran standar, tetapi opsional untuk browser (atau apa pun yang menangani konten) untuk melaporkan. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
ke antrean, lalu aktifkan semua fungsi dalam antrean tersebut secara berurutan setelah ga.js dimuat. Ini memungkinkan Anda memuat secara aman secaraga.js
asinkron.