【问题标题】:Loading multiple videos in one page在一页中加载多个视频
【发布时间】:2017-08-22 20:30:20
【问题描述】:

我在加载页面时收到 40 个视频并使用 foreach 循环进行显示,下面是我显示视频的 html 代码

<div id="videosList">
  <div class="video" data-id="{{$i}}">
     <div class="videoSlate">
         <video id="videoDiv{{$i}}" class="thevideo" 
             preload="metadata"
             poster="/{{$postDetails->video_thumbnail}}" loop>
             <source src="/{{$postDetails->videos}}">
             Your browser does not support the video tag.
         </video>
     </div>
 </div>
</div>

鼠标悬停在视频上我正在播放视频,鼠标悬停我正在停止视频这里是用于播放和暂停的 javascript 代码

 <script>
    var figure = $(".video");
    var vid = figure.find("video");
    [].forEach.call(figure, function (item) {
        item.addEventListener('mouseover', hoverVideo, false);
        item.addEventListener('mouseout', hideVideo, false);
    });
    function hoverVideo(e) {
        $('.thevideo')[$(this).attr("data-id")].play();
    }
    function hideVideo(e) {
        $('.thevideo')[$(this).attr("data-id")].pause();
    }
    $(function () {
        $('[data-toggle="tooltip"]').tooltip()
    })
 </script>

每个视频大小不超过 6 mb,现在问题是加载页面大约需要 1 分钟,悬停播放视频大约需要 15 到 20 秒,有什么办法可以减少加载时间和视频播放时间。我正在使用 laravel 框架,它在本地工作,但在服务器上却出现问题。

【问题讨论】:

  • 在本地你没有下载视频的时间,这可能是你没有问题的原因。
  • YouTube 不只加载看起来像视频的图像屏幕截图,但实际上并没有将视频插入到页面中,直到它被点击(或悬停)?你可能想做类似的事情,你有 40 张图片,但除非用户点击它们,否则它们实际上并不是视频。你可能不得不使用 AJAX 来做到这一点。如果你去 youtube 主页并使用浏览器工具检查视频,你会看到它们是图像。
  • 问题在于用户体验方法。您必须重新考虑这一点,或者尝试添加无限滚动。但我建议你改变这种方法,在页面上制作一个视频。
  • 勾选这个video stream选项,你可能会得到你想要的。
  • @PunabakaAbhinav:有趣!检查this

标签: javascript php html laravel


【解决方案1】:

我不知道为什么您在同一页面中需要 40 个视频,但我完全不建议这样做:

YOUTUBE:

Youtube 不是每页显示 20 个视频,而是 20 个占位符图像,用作点击链接以显示视频。它对用户体验非常友好,因为加载时间大大减少(图像而不是视频)并且用户可以选择他们加载的内容。

脸书、推特、等等……:

Facebook、Twitter 等社交网络正在使用滚动脚本,该脚本仅在用户可见时加载视频。这意味着如果页面上有 100 个视频,则只会加载并显示一两个,因为这对于加载用户看不到的内容是无用的(如果这是一个很重的文件,例如视频,则更是如此)。这可以通过 Javascript 或 jQuery(Here is a pretty cool question 为您提供解决方案)来完成。

我真的建议您选择这两种方法中的一种,因为我无法确定需要在一次加载的情况下在一页上显示 40 个视频的情况。

【讨论】:

  • Louis 感谢您的回复我已经找到了解决方案,将每页 40 个视频减少到 20 个视频并通过 php 使用流式传输。现在页面加载速度很快
猜你喜欢
  • 2021-03-11
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多