Hi,
ich habe immer wieder Probleme mit reibungslosen bzw. erwartungsgemäßen Updates meines "One-Page-Application-AppCaches".
Mein Code beruht im Wesentlichen auf diesem Artikel: https://www.html5rocks.com/de/tutori...ache/beginner/
Daraus habe ich folgendes gemacht:
index.htm
Ist UTF-8 kodiert. Alle im Manifest angegebenen Resourcen (ausnahmslos unter CACHE: gelistet) existieren auch. Die index.htm habe ich in Tests mal mit aufgeführt (weil es eigentlich - obwohl nicht nötig - empfohlen wird), mal nicht (weil Firefox-Desktop mit nicht updated) .
Javascript
Ich wäre Euch dankbar, wenn Ihr mal checkt, ob insbesondere der Javascript - Teil so sinnvoll ist.Und hier wiederum speziell der Aufruf von
an der Stelle.
Ich teste mit einem Galaxy S7, Chrome und Samsungs Internet-Browser. 1x direkt im Browser. 1x in der Browser-App ("Zum Startbildschirm zufügen")
Wenn ich jetzt ein Manifest mit veränderter Versionsnr. und eine veränderte index.htm hochlade, dann passiert folgendes:
Chrome
Lädt Update ohne Rückfrage - confirm("Update verfügbar. Runterladen..."), was eigentlich nicht sein soll.
Samsung Internet - Browser:
Lädt direkt im Browser erwartungsgemäß mit confirm("Update verfügbar. Runterladen...").
In der Browser-App wird das Update nur geladen, wenn es zuvor direkt im Browser schon geladen wurde.
Andere (Desktop) - Browser haben manchmal Ladehemmungen und zeigen dann eine scheinbar CSS-freie Müllseite an.
Also, wäre Euch dankbar für eine Code-Inspektion oben bzw. besonders gute Quellen zum Thema AppCache cross-browser.
Gruß aus Berlin
ich habe immer wieder Probleme mit reibungslosen bzw. erwartungsgemäßen Updates meines "One-Page-Application-AppCaches".
Mein Code beruht im Wesentlichen auf diesem Artikel: https://www.html5rocks.com/de/tutori...ache/beginner/
Daraus habe ich folgendes gemacht:
index.htm
Code:
<html manifest="offlineManifest.manifest">
Javascript
Code:
// Check if a new cache is available on page load. window.addEventListener('load', function(e) { window.applicationCache.update(); 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(true); } } else { // Manifest didn't change. Nothing new to server. 1 } }, false); }, false);
Code:
window.applicationCache.update();
Ich teste mit einem Galaxy S7, Chrome und Samsungs Internet-Browser. 1x direkt im Browser. 1x in der Browser-App ("Zum Startbildschirm zufügen")
Wenn ich jetzt ein Manifest mit veränderter Versionsnr. und eine veränderte index.htm hochlade, dann passiert folgendes:
Chrome
Lädt Update ohne Rückfrage - confirm("Update verfügbar. Runterladen..."), was eigentlich nicht sein soll.
Samsung Internet - Browser:
Lädt direkt im Browser erwartungsgemäß mit confirm("Update verfügbar. Runterladen...").
In der Browser-App wird das Update nur geladen, wenn es zuvor direkt im Browser schon geladen wurde.
Andere (Desktop) - Browser haben manchmal Ladehemmungen und zeigen dann eine scheinbar CSS-freie Müllseite an.
Also, wäre Euch dankbar für eine Code-Inspektion oben bzw. besonders gute Quellen zum Thema AppCache cross-browser.
Gruß aus Berlin
Kommentar