0

プラグイン jquery-oembed-all を使用しています。プラグインは、外部 URL をサイトに動的に埋め込む oembed 機能を提供します。

プラグインは、oembed コンテンツを解決するという面倒な作業をすべて行ってから、次のことを行います。

oembedContainer.append(oembedData.code);

ここで、 oembedContainerはローカル ページ上で動的に生成されたスパンであり、埋め込まれたフェッチされたコンテンツを保持します 。oembedData.codeはフェッチされた実際のコンテンツです。

oembedData.code は、YouTube やその他のビデオ コンテンツの通常のケースである iframe にすることもできます。

同じページに多くのビデオがある場合、各 iframe の読み込みに非常に時間がかかり、ページのビジー インジケーターが停止しません。すべての iframe が完全にロードされていないと、ページをスクロールするのも難しいと思います。

Facebook はどうしてこんなにスムーズな UI を提供するのだろうか (そう、Facebook なのだ。)

この状況を改善するにはどうすればよいですか?

4

1 に答える 1

0

コードを見て、なぜ遅いのかを確認しました。

Youtube は oembed の JSONP オプションを提供していません (こちらを参照)。つまり、ライブラリはブラウザ経由で oembed を直接取得できません。この問題を回避するために、Yahoo YQL を使用して OEmbed データを取得し、JSONP でラップします。YQL はデータを返すのに時間がかかるため (私が見つけた 1 ~ 2 秒)、多くのリクエストでは時間がかかります。

これには 2 つのオプションがあります。2. ライブラリを変更して、iframe ルックアップを使用するように戻します :) - 可能性ははるかに高いです - github にチケットを追加するだけで、何ができるかがわかります。

アンドリュー

于 2012-05-01T22:07:08.053 に答える