XMLHttpRequest在Google Chrome上确实很慢

时间:2016-04-11 15:04:16

标签: javascript google-chrome xmlhttprequest

我昨天一直在研究一个新的迷你项目: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毫秒。

Awkward long loadtimes in Chrome in comparison to Firefox

然而。当我在本地提供页面时,谷歌浏览器可以非常快速地加载它,就像Firefox一样快。但是,当从服务器加载声音时,为什么谷歌浏览器会如此笨拙?

PS:由于IE不支持Webaudio API而不支持Safari,因此该网站根本无法用于Internet Explorer。

1 个答案:

答案 0 :(得分:0)

我找到了。这只是一个缓存问题。在Firefox中清除缓存后,我得到的加载时间与谷歌浏览器大致相同。