如果需要,我想使用 Navigation Timing API 来提供大量资源。一个问题是 Safari 不支持它。
我向您挑战,可能更有经验的开发人员,向我展示以下代码无法按预期工作的情况
我们检测到对 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
}
}
如果浏览器不满足这些条件中的任何一个,它要么是 iPhone 上的 Mobile Safari,要么是旧版本的 Android,我们被迫只为其提供移动优先资源。
现在,给我撕一个新的。如果这是可怕的方法,我真的很想知道。
我现在看到的唯一问题是任何没有 JS 的桌面网站都会获得移动资源。