我正在使用一个插件jquery-oembed-all。插件提供嵌入功能以动态地将外部URL嵌入到站点中。
插件完成解析 oembed 内容的所有繁重工作,然后执行以下操作:
oembedContainer.append(oembedData.code);
其中 oembedContainer 是本地页面上动态生成的范围,它将保存 嵌入式获取的内容和 oembedData.code 是实际内容 获取。
oembedData.code也可以是一个iframe,这是YouTube和其他视频内容的常见情况。
如果我在同一页面上有很多视频,现在每个 iframe 都需要花费大量时间来加载,并且我的页面繁忙的指示符永远不会停止。我发现除非所有 iframe 都已完全加载,否则也很难滚动页面。
我想知道Facebook如何提供如此流畅的UI(是的,他们是Facebook。
任何建议,我该如何改善这种情况?
我只是看了一下代码,看看为什么它很慢。
Youtube 没有为 oembed 提供 JSONP 选项(见这里),这意味着该库无法直接通过浏览器获取 oembed 。为了解决这个问题,Yahoo YQL被用来获取OEmbed数据并将其包装在一些JSONP中。YQL 需要一些时间来返回数据(我发现 1-2 秒),因此对于大量请求,这将需要很长时间。
这有 2 个选项:1. 让 Youtube 将 JSONP 添加到它的嵌入中 - 不太可能,因为它是要求的,他们说因为它不是官方规范的一部分,他们不会支持它。2. 更改库以返回到使用 iframe 查找 :) - 更有可能 - 只需在 github 上添加一张票,我就会看看我能做什么。
安德鲁