Web Workers:无卡顿 Youtube 视频的解决方案?

Web Workers: A solution for stutter-free Youtube video?

我目前已经完成了一个播放 Youtube 视频的网络应用程序。 Youtube HTML5 视频播放超级流畅(即使 CPU 处于 90+ 活跃状态也没有明显的滞后或故障),而我的应用程序(使用 jQuery UI) 接受表单输入或实现元素操作(用户或动态触发)。然而,当 Youtube 强制为我的应用程序提供 Flash 视频时,只要有表单输入、DOM 操作或光标在 UI 上快速移动,在 GUI 操作停止之前,Flash 视频会出现断断续续、咳嗽、打嗝和暂停行为(无论 CPU 级别如何。音频还可以)。

我的客户端网络应用程序是使用 Javascript 和 jQuery 2.10 构建的,并通过 Youtube 的数据 API v3.

访问 Youtube 视频

问题:我可以用 Web Worker 做些什么来确保 UI 交互永远不会影响视频播放(反之亦然),无论 Youtube 的视频格式如何当前通过其数据反馈 API(版本 3)?

问题:如果 Web Workers 不能帮助我,我可以在客户端实现什么(除了避免 Youtube Flash 视频)来解决这个难题?

任何明智的 tips/solutions 将不胜感激。谢谢。

Web Workers 在这里不会有太大帮助(承担任何 UI 相关的事情)。

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers

Web Workers 的全局范围与 window 是分开的,因此您无法从 worker 内部访问 DOM。

您可能需要考虑为加载状态创建一个变量切换,并且如果您当前没有加载则只允许 GUI 事件。否则,除了优化 JavaScript.

之外,我不太确定你能为第二个问题做些什么

编辑:至于在 worker 中加载视频,您可以通过发出 XMLHttpRequest 并获取数据,然后分块发送数据来实现一旦你缓冲了一些,到主线程。查看这篇文章了解更多信息:http://techslides.com/html5-web-workers-for-ajax-requests