Changeset 87696ce in Klonkt for src/views/shell.ejs


Ignore:
Timestamp:
08/18/2026 06:47:58 PM (3 weeks ago)
Author:
Bart <bart@…>
Branches:
main
Children:
847775c
Parents:
85b51bf
git-author:
Bart <bart@…> (08/18/2026 04:37:05 AM)
git-committer:
Bart <bart@…> (08/18/2026 06:47:58 PM)
Message:

De mod/-modules krijgen een cache-buster: MOD_V

/assets staat buiten development op max-age=1y, en de dynamische import van
assets/js/mod/*.js had als enige geen ?v= -- style.css, audio.css en
audio-player.js hebben er al jaren een. Gevolg: wie de pagina eerder bezocht,
draaide een jaar lang de oude module. Een reparatie bereikt dan precies de
bezoekers die de fout al hebben.

Gemerkt bij read.js: de gerepareerde module stond goed op de server (curl
bevestigde het) maar de browser bleef de oude draaien, ook na herladen en na het
wissen van de service-worker-caches. En de hernoemde klasse maakte het zichtbaar:
oude JS zet read-chrome-weg, nieuwe CSS luistert naar read-chrome-hidden, dus de
balken schoven bij die bezoekers helemaal niet meer weg.

Eén nummer voor de hele map, met de hand te bumpen; de regel staat nu ook in
CLAUDE.md en AGENTS.md, want een discipline die nergens staat is er geen.

Co-Authored-By: Claude Opus 5 <claude@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/shell.ejs

    r85b51bf r87696ce  
    496496  window.__modBoot = true;
    497497
     498  // ?v=N — cache-buster voor ALLE modules in assets/js/mod, net als bij
     499  // audio-player.js hierboven. BUMP BIJ ELKE WIJZIGING IN DIE MAP. Zonder
     500  // query staat /assets op max-age=1y, en dan blijft een browser die de
     501  // pagina eerder bezocht een jaar lang de oude module draaien: een
     502  // reparatie bereikt precies de bezoekers die hem al hebben.
     503  // Eén nummer voor de hele map. Te vaak bumpen kost één download; te weinig
     504  // bumpen kost een bugfix die nooit aankomt.
     505  var MOD_V = 1;
     506
    498507  // name -> 1 (aan het laden) of de module-namespace (geladen). Een module
    499508  // die `init` exporteert draait die bij ELKE paginawissel waarop hij actief
     
    514523      if (loaded[name]) { start(name, loaded[name]); return; }
    515524      loaded[name] = 1;
    516       import('/assets/js/mod/' + name + '.js').then(function (m) {
     525      import('/assets/js/mod/' + name + '.js?v=' + MOD_V).then(function (m) {
    517526        loaded[name] = m;
    518527        start(name, m);
Note: See TracChangeset for help on using the changeset viewer.