2011-03-26 114 views
2

我正在創建一個Javascript/HTML5音頻驅動的應用程序,它針對多種瀏覽器,但它最好也必須在移動瀏覽器上運行(iPhone和Android 2.1+)。HTML5音頻緩存 - 不止一次?

應用程序中有很多音頻,但它並不是全部都需要在同一時間,因此我不預裝數據(節省加載時間,並減少用戶可能需要下載的數量他們的手機)。

我打算使用標籤設置音頻,使用相應的s,然後使用Javascript'Audio()'對象來訪問它們。每個文件必須有多個來源,才能支持多個瀏覽器。

我的問題是,如果我使用多個Audio()對象使用相同的源文件,但單獨創建,瀏覽器將緩存它們分開?

例如

var audioObject = new Audio(); 
audioObject.src = document.getElementById('song').src; 

回答

1

這完全取決於瀏覽器。但是,大多數瀏覽器只下載一次聲音文件,並將緩存副本用於其他實例。對於具有相同來源的圖像也會發生同樣的情況。並可能與腳本文件。例如,如果您有10個音頻對象使用相同的sounds/myFile.mp3,那麼大多數瀏覽器將下載該文件一次併爲每個對象分配相同的緩存副本。