0

我正在使用插件 jquery-oembed-all。插件提供 oembed 功能以将外部 url 动态嵌入到站点中。

插件完成了解析 oembed 内容的所有繁重工作,然后执行以下操作:

oembedContainer.append(oembedData.code);

其中oembedContainer是本地页面上动态生成的跨度,它将保存嵌入的获取内容,而 oembedData.code是获取的实际内容。

oembedData.code 也可以是 iframe,这是 youtube 和其他视频内容的常见情况。

如果我在同一页面上有很多视频,那么现在每个 iframe 都会花费大量时间来加载,并且我的页面繁忙指示符永远不会停止。我发现滚动页面也很困难,除非所有 iframe 都已完全加载。

我想知道 facebook 如何提供如此流畅的用户界面(是的,他们是 facebook。)

有什么建议,我该如何改善这种情况?

4

1 回答 1

0

我只是看了一下代码,看看为什么它很慢。

Youtube 不为 oembed 提供 JSONP 选项(请参见此处),这意味着该库无法直接通过浏览器获取 oembed。为了解决这个问题,Yahoo YQL 用于获取 OEmbed 数据并将其包装在一些 JSONP 中。YQL 需要一些时间来返回数据(我发现 1-2 秒)所以有很多请求需要很长时间。

有两种选择: 1. 让 Youtube 将 JSONP 添加到它的 oembed 中 - 不太可能因为它被要求并且他们说因为它不是官方规范的一部分,所以他们不会支持它。2. 更改库以返回使用 iframe 查找:) - 更有可能 - 只需在 github 上添加一张票,我会看看我能做什么。

安德鲁

于 2012-05-01T22:07:08.053 回答