Відповіді:
Редагувати : Станом на 16 листопада 2011 р . _trackPageLoadTime
Функція була вимкнена, а її функціональність встановлена як налаштування за замовчуванням . (Функціонально кажучи, він перейшов від функції відключення до функції відмови.)
_setSiteSpeedSampleRate
- нова функція встановлення частоти вибірки за цією функцією; його значення за замовчуванням 1
(як у 1%). Щоб відмовитися від використання цієї функції «Швидкість сайту», вам потрібно перейти 0
до цієї функції:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
З довідкового центру Google Analytics :
Зараз цей звіт підтримує такі веб-переглядачі: Chrome, Internet Explorer 9 та попередні версії Internet Explorer із встановленою панеллю інструментів Google. Більш конкретно, у звітах про швидкість сайту потрібні веб-переглядачі, які підтримують інтерфейс HTML5 NavigationTiming або встановлено панель інструментів Google Internet Explorer
Таким чином, він не реалізує власний таймер, як багато попередніх домашніх рішень, щоб зрозуміти, скільки часу потрібно для завантаження сторінки. Натомість він використовує нову функцію HTML5, що підтримується лише у вищезазначених випадках, під назвою NavigationTiming.
EDIT : Зараз це підтримується у Firefox 7
(Важливо зазначити, що він не працює при кожному завантаженні; натомість він наразі дискретизує близько 2% переглядів сторінок, хоча він налаштований так, щоб намагатися відстежувати всі завантаження сторінок під час 10% відвідувань; оскільки більшість браузерів підтримують API NavigationTiming, ви можете очікувати, що загальний відсоток вибірки почне наближатися до 10%.)
Доступ до цього інтерфейсу здійснюється під об’єктом DOM window.performance
(або, в попередніх версіях Chrome, window.webkitPerformance
), використовуючи timing
атрибут (так, window.performance.timing
). Об'єкт зберігає виміряні значення всіх часових подій завантаження ключової сторінки, а Google Analytics віднімає 2 більш важливих зовнішніх значення, щоб судити про швидкість завантаження сторінки.
Для завантаження Mashable.com без кешу, ось приклад того, що він вимірює (у 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
}
Ці цифри - це епізодні мілісекунди або мілісекунди з 1 січня 1970 року. Я не бачив жодної документації щодо того, які значення вони віднімають, щоб генерувати свої значення, але при побіжному огляді ga.js це виглядає так loadEventStart-fetchStart
:
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
Для вищевказаного зразка це означає, що він би записав 4,14 секунди у _trackPageLoadTime
виклику.
Якщо новий ресурс має бути отриманий за допомогою HTTP GET або його аналогів, fetchStart повинен повернути час безпосередньо перед тим, як агент користувача почне перевірку будь-яких відповідних кешів додатків. В іншому випадку він повинен повернути час, коли агент користувача починає вибирати ресурс.
Цей атрибут повинен повертати час безпосередньо перед запуском події завантаження поточного документа. Він повинен повернути нуль, коли подія завантаження ще не запущена.
Для допитливих учасників замовлення виглядає наступним чином:
connectStart, connectEnd, domainLookupStart, domainLookupEnd, fetchStart, navigationStart, requestStart, responseStart, domLoading, responseEnd, domContentLoadedEventStart, domInteractive, domContentLoadedEventEnd, domComplete, loadEventStart
Для перелічених 0 значень:
unloadEventStart
і unloadEventStart
відобразити час розвантаження попереднього завантаження сторінки (але лише якщо ця сторінка має те саме походження, що й поточна.)
redirectEnd
і redirectStart
виміряти додану затримку, якщо в ланцюзі завантаження сторінки було перенаправлення HTTP.
secureConnectionStart
представляється необов'язковим вимірюванням для вимірювання часу з'єднання SSL.
secureConnectionStart
є стандартним повідомленням, але браузер (або що обробляє вміст) звітувати не може. w3c-test.org/webperf/specs/NavigationTiming/…
_trackPageLoadTime
до черги, а потім запустіть усі функції цієї черги послідовно після завантаження ga.js. Це дозволяє безпечно завантажуватиga.js
асинхронно.