3

Я хочу использовать API синхронизации навигации, чтобы при необходимости использовать большие ресурсы. Одной из проблем является Safari, которая не поддерживает его.Navigation Timing API Fallback

Я призываю вас, коллеги и, вероятно, более опытных разработчики, чтобы показать мне случаи, когда следующий код не будет работать, как ожидалось

Мы обнаруживаем поддержку API, а затем есть несколько резервных объявлений, которые, да, к сожалению, чтобы сделать некоторые UA нюхать, чтобы обеспечить большие ресурсы для более старых версий IE и настольных Safari.

if (typeof performance != null) { 

    // Navigation Timing API is Supported 

    if (performance.timing.responseEnd - performance.timing.requestStart < 500) { 

     // Connection is fast enough to provide large resources. 

    } 

} else { 

    // Navigation Timing API is NOT supported 

    if (!navigator.userAgent.match(/iPhone|Android/)){ 

     // Browser is either desktop Safari, Safari on iPad, or IE 8,7,6 
     // Assume a fast connection. Provide large resources 

    } 

} 

Если браузер не соответствует ни одному из этих условий, она либо Mobile Safari на iPhone или более старая версия Android, и мы вынуждены просто дать ему мобильные первые ресурсы.

Теперь, TEAR ME NEW ONE. Если это ужасный подход, я действительно хочу знать.

Единственная проблема, которую я вижу сейчас, заключается в том, что любой рабочий стол без JS получит мобильные ресурсы.

ответ

5

Вот polyfill для него одного из w3c ребят, которые работали на спецификации: http://nicj.net/usertiming-js/

Я бы рекомендовал в качестве очистительного подхода.

Update:
Я использую этот метод в производстве с приличным успехом. http://blog.patrickmeenan.com/2013/07/measuring-performance-of-user-experience.html#comment-form

https://gist.github.com/pmeenan/5902672#file-user-timing-js

Я также хотел бы посмотреть в boomerang.js для обнаружения полосы пропускания:
https://github.com/lognormal/boomerang http://www.youtube.com/watch?v=gy1DTBMOA74

 Смежные вопросы

  • Нет связанных вопросов^_^