私はFacebookからのたくさんの社会埋め込みを持つブートストラップカルーセルを持っています。 問題は既にこの簡単なjsfiddleに表示されており、Facebookの埋め込みに起因するため、私はBootstrap Carouselの詳細には触れません。Facebookに埋め込まれた膨大な量のxhr/ajaxコールを防ぐiframe
https://jsfiddle.net/1L95vqn4/を読み込み、「ネットワークタブ」のChrome Devツールを見て「XHR」(キャッシュを無効にする)のフィルタを適用すると、34件のリクエストが表示され、さらに5.8Mbが読み込まれますFacebookのiframeによってajax経由で読み込まれた動画を「再生」します。
私は、これらのfb ajaxリクエストの重みを怠ると、つまり、ユーザーが「ビデオを再生」を押したときにそれらの呼び出しをロードするだけです。
私はウェブ上でこれについて何も見つけることができませんでした非常に驚いています。ツイッター埋め込みなどの他のソーシャルネットワークでは、ユーザーが再生を押すまで動画が読み込まれません。ビデオを再生する前に、Facebookの埋め込みケースの膨大な量のデータ(5Mb、15MB、30MBなど)が読み込まれます。
私の実際のより複雑な問題についての情報のためだけに注意してください:私のウェブサイトでは、実際にこのiframeを使用していませんが、スタイルを埋め込んでいます(jsfiddleまたはあまりにも複雑なためにajaxリクエストを入れることは不可能です)。私の実際の問題は、各スライドに20枚のFacebookブック埋め込み動画があるカルーセルを読み込むと、カルーセルを開くときにパフォーマンスが大幅に向上するということです。
$.ajax({
url: 'https://www.facebook.com/plugins/post/oembed.json/?url=https://www.facebook.com/cocacola/posts/1526674334016658',
dataType: 'jsonp',
cache: false,
success: function (data) {
try {
var embed_html = (data.html);
$('div#item1').html(embed_html);
} catch (err) {
console.log(err);
}
}
});
遅延ロードすることにより、パフォーマンスに影響を与えるすべてこのAJAX XHRとのMP4を読み込む、または他の方法としてFBを防止する方法はありますか?
ソースによって判断すると、それらのxhrはいずれにしても非同期です。したがって、事前ロードはすでにバックグラウンドで行われていますが、パフォーマンスのヒットは何ですか? – bashnesnos