导航计时 API 回退
Navigation Timing API Fallback
如果需要
,我想使用导航计时 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 上的移动野生动物园,要么是旧版本的 Android,我们被迫只给它移动优先的资源。
现在,给我撕一个新的。如果这是可怕的方法,我真的很想知道。
我现在看到的唯一问题是任何没有JS的桌面站点都会获得移动资源。
这是一位
从事规范工作的w3c人员对它的polyfill:http://nicj.net/usertiming-js/
我建议将其作为一种更清洁的方法。
更新:
我一直在生产中使用这种方法,并取得了不错的成功。http://blog.patrickmeenan.com/2013/07/measuring-performance-of-user-experience.html#comment-form
https://gist.github.com/pmeenan/5902672#file-user-timing-js
我还会研究回旋镖.js以进行带宽检测:
https://github.com/lognormal/boomeranghttp://www.youtube.com/watch?v=gy1DTBMOA74
相关文章:
- 如何通过bxSlider回调api处理事件
- 什么是HTML5画布标记的回退
- 如何在XHTML中添加jQuery CDN回退
- 当CDN加载失败时,为字体添加一个本地CSS回退
- HTML5 视频的回退图像
- 同时使用回退和 JavaScript.什么是正确的方法
- Javascript “替换”替换回退
- jQuery CDN超时回退
- 悬停状态指针事件:无Javascript回退
- IE8 内联尝试的 SVG 回退
- 设置计时器以等待为flash回退视频播放器加载swfobject脚本
- 如何为未加载、加载时间过长和被阻止的css文件编写回退
- HTML5视频回退/备份图像不合适..
- IE8 和控制台.log - 如果开发人员控制台未打开,则回退到存根
- 咕噜咕噜浏览器化 - 设置包含,回退路径
- 如果失败,角度回调 API 将添加错误消息
- Javascript动画回退
- 导航计时 API 回退
- url重写与连接历史api回退
- Webpack 2 beta +历史API回退不起作用