設定:
rails 3.2 - 4.0 がまだ来ていないので ;-)
fitvids ( http://fitvidsjs.com ) - レスポンシブ iframe 用
ハイチャート ( http://www.highcharts.com ) - いくつかの統計について...
そしてループのあるビュー、したがって複数のiframeは次のようになります:
<%= video.each do |video| %>
<div class="video-embed">
<iframe src="http://www.youtube.com/embed/<%= video.host_video_id.strip %>?modestbranding=0&autohide=1&rel=0&fs=1&HD=1&showinfo=0&controls=0?wmode=transparent" title="YouTube video player" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="">
</iframe>
</div>
<% end %>
フィットビッド:
$(".video-embed").fitVids();
10 個を超える iframe がある場合、ハイチャートのレンダリングが開始される前に、ページが 15 秒間読み込まれるように見えます。そしてそれはしゃっくりのように見えます。
私は非同期アプローチを試しました:
(function(d){
var iframe = d.body.appendChild(d.createElement('iframe')),
doc = iframe.contentWindow.document;
// I tried to include the fitvid code here instead of the following line
iframe.style.cssText = "position:absolute;width:200px;height:100px;left:0px;";
doc.open().write('<body onload="' +
'var d = document;d.getElementsByTagName(\'head\')[0].' +
'appendChild(d.createElement(\'script\')).src' +
'=\'\/path\/to\/file\'">');
doc.close(); //iframe onload event happens
})(document);
動作が異なるように見えますが、明らかに fitvid が壊れています。
a) fitvids を onload js に含めることは可能ですか? b) ビジュアル エクスペリエンスを向上させるために iframe を (fitvids を使用しながら) 非同期にロードする他の方法はありますか? つまり、表示されている iframe のみをレンダリングし、スクロール イベントでさらにレンダリングします ... fitvids を使用しますか?
ありがとうございました
j