2015-09-26 141 views
1

我一直在遇到一些HTML5视频元素不会加载的问题,或者第一秒会加载然后不能播放,或者会慢慢加载。我仍然在尝试调试,但现在我唯一可以问的问题是'为什么不能正常工作',这对于SO来说确实不是一个好问题。何时忽略HTML5视频预加载?

但在我的调试过程中,我遇到了这个小宝石上W3Schools的:

的装载属性,允许创作者提供一个提示,关于他/她的浏览器认为会导致最好的用户体验。在某些情况下,该属性可能会被忽略。

因为W3Schools ...并不是很棒,我们都知道,他们没有打算详细介绍。这可能是问题的一部分,因为视频显然没有正确预加载。但不管这是否是问题,我实际上对此很好奇,似乎无法在网上找到答案。

我发现的唯一答案是某些移动浏览器不支持预加载属性,如果autoplay属性也存在,它将被忽略,但如果它很简单,我必须想象它们会有就这么说。

因此:何时以及为什么HTML5视频预加载属性被忽略?

+0

Upvoted,因为这是一个很好的问题,因为我希望有一个比我给出的更好的答案 - 因为这将是更好的跨浏览器的更可预测的行为。事实是,情况使得很难确定何时可以可靠地期望预加载行为发生。其中很大一部分是用户环境的一部分,稍微有点像浏览器开发人员的兴趣。 – sideshowbarker

回答

1

简而言之,浏览器可以随时选择忽略preload

较长的答案是,HTML规范在preload必须忽略或应该忽略时没有提供任何规则。实际上,the HTML spec defines preload as literally just a hint,并且因此,效果是该规范在浏览器上没有提出任何硬性要求。

预加载属性旨在向用户代理 提供有关作者认为会导致最佳用户体验的提示。 该属性可能会被完全忽略,例如,基于明确的用户偏好 或基于可用的连接。

所以,结果就是,对于浏览器可以获得什么样的行为,这是一种免费的行为。一个浏览器可能会选择在某些特定情况下忽略它,而另一个则可能不会。