Ankündigung

Einklappen
Keine Ankündigung bisher.

AppCache Update: Enheitliches Verhalten appCache-fähiger Browser

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AppCache Update: Enheitliches Verhalten appCache-fähiger Browser

    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

    Code:
     <html manifest="offlineManifest.manifest">
    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

    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);
    Ich wäre Euch dankbar, wenn Ihr mal checkt, ob insbesondere der Javascript - Teil so sinnvoll ist.Und hier wiederum speziell der Aufruf von
    Code:
    window.applicationCache.update();
    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
    [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

  • #2
    Hast du mal die Cache-Header alle geprüft?
    [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

    Kommentar


    • #3
      lottikarotti: Sorry, dass ich mich jetzt erst melde. Vielen Dank für Deine Meldung.

      Um das Thema "header" habe ich mich bisher nicht speziell gekümmert.

      Soweit ich das sehe, hat auch keine Doku diesen Aspekt erwähnt. Ansich müsste es doch so sein, dass wenn ich das manifest verändere,
      die veränderten Dateien auch neu geladen werden.

      Oder muss ich da tatsächlich tatsächlich sowas wie no-store oder max-age=0 mitschicken?

      Ich habe mal speziell nach AppCache, Offline Manifest und header gegoogelt, aber nichts Brauchbares gefunden.

      Hast Du da noch eine Lesequelle für mich?
      [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

      Kommentar

      Lädt...
      X