【发布时间】:2019-01-14 23:48:25
【问题描述】:
我有一个 React 应用程序,它的组件根据用户输入加载不同的视频。只有 4 或 5 个小视频,所以我想在浏览器不活动时预取所有这些视频。
在我的组件中,我有:
<video src={this.props.video} type="video/mp4" />
在我的 index.html 中,我的头部有一行视频:
<link rel="prefetch" as="video/mp4" href="link/to/my/video.mp4">
但是,这不起作用。查看控制台,我可以看到视频已获取(状态为 200)但未存储在缓存中(响应大小为 5 Mb,磁盘大小为 0 Mb)。当我提供用户输入并且组件需要显示该视频时,它会再次被提取,这需要几秒钟。
PS - 我不尝试在视频元素上使用预加载的原因是因为预加载仅在您正在查看的页面中有视频时才有效。就我而言,即使当前页面不需要视频,我也想加载视频。
更新:我创建了一个pen,您可以在其中看到尽管在头部使用了链接标签,但视频并未预取。
【问题讨论】:
-
似乎
link ref="pref"和<video preload都不会强制浏览器预加载整个视频。在我的 chrome 上,它只缓冲视频的一部分(所以你可以立即开始播放)。
标签: javascript html reactjs html5-video prefetch