2013-12-12 68 views
4

我目前正在對將在本地網絡中使用的大型web應用程序:HTML5視頻+ Ajax + IE =糟糕的表現?

  • 一頁,玩到12個視頻(SD)。 Flash或HTML5,我有選擇。
  • 在同一頁上,間隔(每800毫秒)使用Ajax調用Php腳本(約30ms的執行時間)。

一切工作正常,但... Internet Explorer的:)

在Chrome或Firefox,配備閃光燈或HTML5,Ajax請求需要35到60毫秒時12個視頻正在播放。

在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); 
?> 
+0

爲什麼你到底是調用PHP文件中的每個800ms的? – Nunners

+0

簡而言之:Php腳本會在數據庫中查看時間表,並說「現在開始一個新視頻」或「立即停止此視頻」。它必須非常精確:( – Watanka

+0

你能說明一下嗎 - 每800ms對於12個視頻中的每一個都需要一個100ms的請求嗎?還是對於所有12個需要1.2秒的單個批量請求? – brianchirls

回答

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

+0

工作中的Ajax請求並不是一件很好的事情,將嘗試。感謝您的迴應。 – Watanka

+1

測試完成:它好多了!現在需要50-300ms而不是1.2s的12個視頻。 – Watanka