HTML5视频+Ajax+IE=性能差?

4
我目前正在开发一个大型Web应用程序,该应用将在本地网络中使用:
  • 一个页面最多可以播放12个(SD)视频。Flash或HTML5,我可以选择。
  • 在同一页上,每隔800毫秒调用一个使用Ajax的PHP脚本(约30毫秒执行时间)。
一切都很顺利……但是,在Internet Explorer中会出现问题。
在Chrome或Firefox中,使用flash或HTML5时,当播放12个视频时,ajax请求需要35至60毫秒。
在IE11(或10)中,每个播放视频的ajax请求需要100ms。这对我来说确实是一个巨大的问题。如果有12个播放的视频,则请求需要1.2秒。
也许有人知道如何使IE中的这些请求更快?
谢谢!
以下是我用于测试的非常简单的代码:
HTML / Javascript
<html>
<head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
   <script type="text/javascript">
    $(function(){
            setInterval(function(){testAjax()},800); 
    });

        function testAjax(){
            $.ajax({
                url: "./AjaxTest.php",
                cache:false
            });
        }
    </script>
</head>

<body>
    <!-- this x12 -->
    <video autoplay>
        <source type="video/mp4" src="video.MP4"> <!-- Change video to a WEBM file when testing in IE -->
    </video>
</body>

AjaxTest.php

<?php
usleep(30000);
?>

你为什么要每800毫秒调用一次PHP文件? - Nunners
简而言之:Php脚本在数据库中查找时间表,并说“现在开始新视频”或“现在停止此视频”。它必须非常精确:( - Watanka
你能说明白一下吗?是每800毫秒针对这12个视频中的每一个发出100毫秒的请求,还是一个批次发出所有12个视频的请求,需要1.2秒钟完成? - brianchirls
每800毫秒发出1个请求。在IE中,这个请求需要100ms * number_video完成(如果有12个视频,则总共需要1.2秒)。 - Watanka
2个回答

2
数月后,同样的问题又出现了!当大量视频播放(高达21个:D)时,IE的请求需要30-60秒才能完成!我终于知道原因了:Internet Explorer限制您可以同时为服务器拥有的活动HTTP请求数量。在我的情况下,所有流媒体都在同一台服务器上。这意味着我的请求被放入队列中,有时需要等待60秒才能发送。IE的限制可以被取消,这篇博客文章解释了如何做到这一点(非常容易):http://www.pallareviews.com/1186/increase-internet-explorer-download-limit/

1
HTML5提供了一种名为“Web worker”的功能,可在后台独立于当前页面的请求运行您的脚本。
参考链接:W3Schools

从我所了解的情况来看,在工作线程中进行Ajax请求并不是一个很好的做法,对吗?我会尝试的。感谢您的回复。 - Watanka
1
测试完成:效果好多了!现在处理12个视频只需要50-300毫秒,而不是1.2秒。 - Watanka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接