2013-02-14 1 views
0

Я использую API-интерфейс навигации, чтобы получать события загрузки со страницы. Я добавил фрагмент JS ниже для вывода информации. Одна вещь, я заметил, было странно, что время loadEventEnd вернулось раньше, чем loadEventStart, когда я проверяю консоль. Я бы подумал, что это невозможно.Навигация События API синхронизации не срабатывают в порядке

var startTime = new Date().getTime(); 
// retrieve the performance object in a cross browser way. Check window.performance first. 
window.performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance || {}; 
var timing = window.performance.timing || {}; 
var navigation = window.performance.navigation || {}; 

// if the Navigation Timing API is supported 
if (window.performance && window.performance.timing) { 
    pageRequestStart = timing.requestStart; 
    pageResponseStart = timing.responseStart; 
    pageResponseEnd = timing.responseEnd; 
    pageLoadEventStart = timing.loadEventStart; 
    pageLoadEventEnd = timing.loadEventEnd; 
    pageLoadTime = timing.navigationStart; 
} 
var timingOutput = 
    "requestStart: " + pageRequestStart + "\n" 
    + "responseStart: " + pageResponseStart + "\n" 
    + "responseEnd: " + pageResponseEnd + "\n" 
    + "loadEventStart: " + pageLoadEventStart + "\n" 
    + "loadEventEnd: " + pageLoadEventEnd + "\n" 
    + "navigationStart: " + pageLoadTime; 
console.log(timingOutput); 
+0

Неужели это так, или это просто одноразовый? –

ответ

1

Хотя я не уверен, специфики вашего дела, то NavigationTiming APIs является довольно новым для IE, Chrome, Firefox и Opera. Во время разработки спецификации и реализации в браузерах многие небольшие ошибки были замечены аналогично тому, что вы описали выше, из-за различий в различиях между браузерами.

Вероятно, ошибка, которую вы видели, исправлена ​​в последних версиях браузера. Если вы все еще постоянно видите проблему в браузере, который вы используете, вы можете попробовать W3C webperf test cases for NavigationTiming, чтобы узнать, не сработает ли что-либо.