Я хочу использовать 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 получит мобильные ресурсы.