Your problem is that Audio objects don't support the 'load' event.
Instead, there's an event called 'canplaythrough' that doesn't mean it's fully loaded, but enough of it is loaded that at the current download rate, it will finish by the time the track has had enough time to play through.
So instead of
audio.onload = isAppLoaded;
try
audio.oncanplaythrough = isAppLoaded;
Or better yet.. ;)
audio.addEventListener('canplaythrough', isAppLoaded, false);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…