Fysiksektionen / sangbok-html

Sångboken. För hemsidan.
https://f.kth.se/sangbok/
0 stars 0 forks source link

PWA auto-update #39

Open oskarr opened 2 years ago

oskarr commented 2 years ago

Om ServiceWorkern märker att __COMMIT__ har uppdateras, bör den försöka uppdatera sig själv. Förmodligen fungerar det ok nu, men det kan vara bra om vi någonsin vill uppdatera ServiceWorkern. Se StackOverflow för mer info. Löst, men kan förbättras. Se kommentar nedan.

oskarr commented 2 years ago

Det verkar som att felet är i registerRoute-koden, som kräver en ordentlig handler function eller något i den stilen.

oskarr commented 2 years ago

Det största problemet är löst. Problemet var följande:

  1. Service-workern pre-cachade ett antal filer.
  2. Pre-cachade filer använder CacheFirst-strategin om inte någon annan Route matchar filen.
  3. Av någon anledning använde startsidan en pre-cachen istället för NetworkFirst-cachen.
  4. Av någon annan anledning använde inte JavaScript-filerna någon cache alls, och webbläsaren efterfrågar de nya JS-filerna från servern, som inte längre har dem.
  5. Inga skript laddas. Sidan fungerar inte.

Exakt vad som orsakar 3 och 4 är väldigt oklart. 3 kan förklaras genom en felmatchad konfiguration mellan pre-cachen och NetworkFirst-cachen, men jag har inte lyckats lösa detta problem. Problem 4 skulle kunna ha orsakats av ExpiryPlugin:et, men det är osannolikt.

Problemet är nu tillfälligt löst genom att ta bort NetworkFirst-cachen. Detta ger följande uppdateringsprocess:

  1. Sidan uppdateras på servern.
  2. Någon går in på sidan, och får se den gamla, cachade versionen av sidan.
  3. Efter att sidan renderas, kollar webbläsaren om det finns en ny service-worker (som därmed har andra pre-cachade filer).
  4. Den nya service-workern läggs i kö, och uppdateras när alla flikar med sångboken uppe stängs.
  5. Användaren ser den uppdaterade sidan nästa gång hen går in på sidan.

Detta gör att:

Det bästa vore om:

oskarr commented 1 year ago

Användaren ser felmeddelandet i index.html när sångboken uppdateras (åtminstone om hen använt PWA). Detta bör lösas innan det slutas kallas för "bugg".

oskarr commented 1 year ago

Service workern har stängts av.