我觉得“(由 Google 拥有)”评论暗示了一些我认为不存在的改变动机..
这里可能存在几个不同的问题:
1) 您似乎正在使用 Mobile Safari 测试 Youtube.com,并使用 webview 测试嵌入式播放器:
这不是一个公平的比较,因为 webview 已被证明比 safari 慢得多。 (例如http://www.guypo.com/mobile/ios-browsers-speed-bakeoff/)
2) 您没有明确说明您测量的是什么加载时间
你是在这段时间创建webview并设置浏览器环境吗?
您是否正在加载包含嵌入播放器代码的脚本标签的文档?
在您加载视频时,Safari 是否有 youtube.com 的热缓存?
在您点击加载页面之前,许多浏览器会在您键入时开始在后台加载请求 - 此类性能调整可以显着减少加载网站的明显时间,但会使比较变得困难。
3) 他们优化的常见用户故事不同
在将 YouTube 播放器 API 插入页面或网站的几乎所有情况下,视频都不会自动开始播放。
相比之下,几乎每个 YouTube 观看页面加载都会自动开始播放视频。
YouTube 之前在演示文稿中讨论过的优化之一是将视频流的第一部分嵌入到页面中甚至在视频播放器加载之前。
这是为了更快的视频播放而牺牲额外的用户带宽,当您知道用户肯定会播放视频时,这是有意义的:但是,如果他们要为嵌入式视频这样做,那么它会显着减慢播放器的加载时间并不总是开始播放 - 这是世界上所有网站的相当大比例!
4) YouTube 在这两种情况下涉及的时间不同,只能稍后开始为嵌入式播放器优化体验。
YouTube 能够在 youtube.com 上进行优化,而在使用其 html5 播放器 API 的第三方网站/应用程序上无法做到。
以在 youtube.com 上观看视频为例:YouTube 从第一个 http 请求开始就参与其中 - 他们知道您正在播放哪个视频,并且他们知道您说您使用的是哪个浏览器(因此可以优化体验为尽可能多地预加载正确的视频和/或视频播放器)。
在嵌入 iframe 的情况下:
- 浏览器首先加载您的页面,然后必须从中解析和提取网址。
- 然后它向 YouTube 发出 javascript 请求(请注意,如果您使用的是 javascript 播放器 API 而不是直接嵌入的 iframe,则需要将其缓存在浏览器上,因此 YouTube 仍然无法优化此视频的性能此时)
- 完成整个页面的加载后,它可以创建一个指向 YouTube 的 iframe(所有这些都需要 CPU 和内存管理时间)
- 在此时,YouTube 可以开始优化事物以尝试加快体验。