我昨天一直在研究一个新的迷你项目:www.mexicans.eu。一个只做一件事的网站:播放墨西哥歌曲Jarabe。页面中间有一扇门,可以点击它打开门或关闭它。关上门为墨西哥歌曲设置了一个过滤器。只是一些基本的webaudio在那里。
但问题是谷歌浏览器的加载时间。
_loadDoorSound: function(url, onload) {
var startTime = new Date().getTime();
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
request.onload = function() {
var loadTime = new Date().getTime() - startTime;
console.log("Loaded sound in " + loadTime + " milliseconds");
console.log("Decoding sound");
this.ctx.decodeAudioData(request.response, function(buffer) {
this.AUDIO.buffer = buffer;
this.onload();
console.log("Decoded sound");
}.bind(this));
}.bind(this);
console.log("Loading sound");
request.send();
}
谷歌Chrome浏览器的加载时间为14秒。在Firefox中它可以使用大约300毫秒。
然而。当我在本地提供页面时,谷歌浏览器可以非常快速地加载它,就像Firefox一样快。但是,当从服务器加载声音时,为什么谷歌浏览器会如此笨拙?
PS:由于IE不支持Webaudio API而不支持Safari,因此该网站根本无法用于Internet Explorer。
答案 0 :(得分:0)
我找到了。这只是一个缓存问题。在Firefox中清除缓存后,我得到的加载时间与谷歌浏览器大致相同。