Hi
Ich habe eine Eine-Seite-Offline-Web-Applikation, die mit folgendem Code prüft, ob ein Cache-Update verfügbar ist und es bei Bedarf lädt.
Wenn ich irgendetwas ändere, schreibe ich das in das Offline-Manifest und lade dann Manifest + geänderte Datei hoch.
Das klappt manchmal einwandfrei, geht aber leider zu oft in die Hose. Die Phänomene sind:
1) Endlos Reload (Firefox)
Der confirm-Dialog poppt endlos auf. Ein Klick auf "abbrechen" stoppt das endlose Aufpoppen, allerdings wird nichts upgedatet.
2) Javascript streikt
Der Reload scheint geklappt zu haben, allerdings streikt Javascript. D. h. es werden z. B. keine Click-Event-Handlers ausgeführt.
Hier hilft ein Page-Refresh, dann ist alles so wie es soll.
Könntet Ihr bitte mal schauen, ob Ihr Fehler entdeckt?
Ich habe eine Eine-Seite-Offline-Web-Applikation, die mit folgendem Code prüft, ob ein Cache-Update verfügbar ist und es bei Bedarf lädt.
Code:
<!DOCTYPE html> <html manifest="offlineManifest.manifest"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name = "viewport" content = "width = device-width" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <title>GEWEMA Leasingrechner</title> <link href="offline.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="jquery-1.7.0.min.js"></script> <script type="text/javascript" src="offline10.js"></script> <script type="text/javascript"> window.applicationCache.update(); // Check if a new cache is available on page load. window.addEventListener('load', function(e) { window.applicationCache.addEventListener('updateready', function(e) { if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { // Browser downloaded a new app cache. // Swap it in and reload the page to get the new hotness. if (confirm("Update verfügbar. Runterladen...") === true) { window.applicationCache.swapCache(); window.location.reload(); } } else { // Manifest didn't change. Nothing new to server. 1 } }, false); }, false);
Das klappt manchmal einwandfrei, geht aber leider zu oft in die Hose. Die Phänomene sind:
1) Endlos Reload (Firefox)
Der confirm-Dialog poppt endlos auf. Ein Klick auf "abbrechen" stoppt das endlose Aufpoppen, allerdings wird nichts upgedatet.
2) Javascript streikt
Der Reload scheint geklappt zu haben, allerdings streikt Javascript. D. h. es werden z. B. keine Click-Event-Handlers ausgeführt.
Hier hilft ein Page-Refresh, dann ist alles so wie es soll.
Könntet Ihr bitte mal schauen, ob Ihr Fehler entdeckt?
Kommentar