[[Replicated my answer here below, because it can be applied here:]]
I found that debugging standalone HTML5 applications is a pain. I found the code from this article, helped me figure out what happened to my application:
http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/
Debugging HTML 5 Offline Application Cache by Jonathan Stark
If you want to provide offline access to your web application, the offline application cache available in HTML5 is a killer. However, this is a giant PITA for debugging, especially if you are still trying to get around it.
If you're struggling with the cache manifest, add the following JavaScript to the HTML main page and view the console output using Firebug in Firefox or Debug> Show Error Console in Safari.
If you have any questions, plmk in the comments.
NTN
J
var cacheStatusValues = []; cacheStatusValues[0] = 'uncached'; cacheStatusValues[1] = 'idle'; cacheStatusValues[2] = 'checking'; cacheStatusValues[3] = 'downloading'; cacheStatusValues[4] = 'updateready'; cacheStatusValues[5] = 'obsolete'; var cache = window.applicationCache; cache.addEventListener('cached', logEvent, false); cache.addEventListener('checking', logEvent, false); cache.addEventListener('downloading', logEvent, false); cache.addEventListener('error', logEvent, false); cache.addEventListener('noupdate', logEvent, false); cache.addEventListener('obsolete', logEvent, false); cache.addEventListener('progress', logEvent, false); cache.addEventListener('updateready', logEvent, false); function logEvent(e) { var online, status, type, message; online = (navigator.onLine) ? 'yes' : 'no'; status = cacheStatusValues[cache.status]; type = e.type; message = 'online: ' + online; message+= ', event: ' + type; message+= ', status: ' + status; if (type == 'error' && navigator.onLine) { message+= ' (prolly a syntax error in manifest)'; } console.log(message); } window.applicationCache.addEventListener( 'updateready', function(){ window.applicationCache.swapCache(); console.log('swap cache has been called'); }, false ); setInterval(function(){cache.update()}, 10000);