首页 文章

YouTube嵌入了速度缓慢的页面

提问于
浏览
0

我有一个包含一堆缩略图的页面,点击这些图片时会在模态中打开嵌入的youtube视频 .

这是html:

<li>

                    <div class="videoLd">

                        <a class="video-link" title="Video Title" href="#video" role="button" data-toggle="modal" data-id="youtubeid">

                            <img class="responsive-imamge" src="//www.mysite.com/video.jpg" alt="" >

                        </a>


                            <h4>Video Title</h4>


                        <p>Video Description</p>


                        <div id="video" class="modal hide fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
                                <img src="www.mysite.com/close-modal.png" alt=" ">
                            </button>

                            <div class="modal-body">
                                <div class="video-wrapper">
                                    <!-- on click the iframe will append here -->                                       
                                </div>
                            </div>

                        </div>

                    </div>


                </li>

我用这种方式显示了5个视频缩略图列表 . 这确实减慢了我的页面加载时间 . 在添加视频之前,页面加载速度比我网站上的平均速度快61% . 现在它慢了21% .

有没有办法优化这些视频,以便只在点击视频缩略图时加载?

EDIT

以为我会更新这个并分享我现在实际使用的内容 . 我没有使用lazyYT插件,而是创建了一个简单的点击功能,将iframe附加到容器div . 视频链接具有包含youTube视频ID的data-id属性 .

$('.video-link').on('click', function () {
    var youTubeID = $(this).data('id');
    var code="<iframe width='1280' height='720' src='//www.youtube.com/embed/" + youTubeID + "?rel=0&autoplay=1' frameborder='0' allowfullscreen=''></iframe>";
    $(this).parent().find('.video-wrapper').append(code);
});

1 回答

  • 1

    您是否考虑过延迟加载Youtube视频?

    我自己没有用过,但这个jQuery plugin会懒得加载Youtube视频 . 这是another plugin将延迟加载,但不幸的是,它们似乎都需要jQuery,这是不理想的,除非您的网站已经在使用它 .

    SO上也有another answer涵盖了这个问题,可能会给你更多的见解 .

相关问题