Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PWA auto-update #39

Open
oskarr opened this issue May 19, 2022 · 4 comments
Open

PWA auto-update #39

oskarr opened this issue May 19, 2022 · 4 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@oskarr
Copy link
Member

oskarr commented May 19, 2022

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 oskarr added bug Something isn't working enhancement New feature or request good first issue Good for newcomers labels May 19, 2022
@oskarr oskarr removed the enhancement New feature or request label Aug 1, 2022
@oskarr
Copy link
Member Author

oskarr commented Aug 1, 2022

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

oskarr added a commit that referenced this issue Aug 2, 2022
@oskarr oskarr added enhancement New feature or request and removed bug Something isn't working labels Aug 2, 2022
@oskarr
Copy link
Member Author

oskarr commented Aug 2, 2022

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:

  • Användaren garanterat alltid har en sångbok med "grundläggande funktionalitet".
  • Om en användare som använder en gammal version efterfrågar noter/tex-filer/sångbladsgeneratorn/m.m., som inte pre-cachas, kommer dessa inte att fungera korrekt.

Det bästa vore om:

  • Vi kunde få till en NetworkFirst-caching för / och index.html, utan att förlora pre-cachens hash.

@oskarr oskarr changed the title ServiceWorker auto-update PWA auto-update Aug 3, 2022
@oskarr oskarr added the bug Something isn't working label Jan 2, 2023
@oskarr
Copy link
Member Author

oskarr commented Jan 2, 2023

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 oskarr removed the bug Something isn't working label May 8, 2023
@oskarr
Copy link
Member Author

oskarr commented May 8, 2023

Service workern har stängts av.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant