我正在创建一个针对多个浏览器的Javascript / HTML5音频驱动应用程序,但理想情况下它也必须适用于移动浏览器(iPhone和Android 2.1 +)。
应用程序中有很多音频,但并非所有音频都需要同时使用,因此我不会预加载数据(节省加载时间,并减少用户可能需要下载的数量)移动)。
我将使用标签来设置音频,使用相应的s,然后使用Javascript的Audio()'对象来访问它们。每个文件必须有多个源,以支持多个浏览器。
我的问题是,如果我使用相同的源文件使用多个Audio()对象,但是单独创建,浏览器会单独缓存它们吗?
e.g。
var audioObject = new Audio();
audioObject.src = document.getElementById('song').src;
答案 0 :(得分:1)
这完全取决于浏览器。但是,大多数浏览器下载声音文件一次,并将缓存副本用于其他实例。具有相同来源的图像也会发生同样的情况。并且可能是脚本文件。
例如,如果您有10个使用相同 sounds / myFile.mp3 的Audio对象,那么大多数浏览器将下载该文件一次并为每个对象分配相同的缓存副本。 / p>