Ik heb beide JavaScript-delen op syntax gecontroleerd. De definitieve serverfuncties x27NewsFrontFast, x27NewsCachedFast, x27NewsLiveFast, x27VerifyLoginCode en x27PasswordLogin hebben nu ieder één actieve functiedefinitie.
Na vervangen: opslaan → Implementeren → Implementaties beheren → Bewerken → Nieuwe versie → Implementeren. Gebruik daarna dezelfde /exec-URL.
Het gewenste openingsgedrag is nu:
OPEN WEBAPP
↓
x27Ping
↓
opgeslagen feed direct ophalen
↓
nieuws meteen tonen
↓
± 250 ms later
↓
lichte LIVE RSS update
↓
nieuwe berichten opslaan
↓
zichtbare feed automatisch verversen
En login:
e-mail + code / wachtwoord
↓
gerichte snelle lookup
↓
sessie opslaan
↓
APP.session
↓
INGELOGD
Als login hierna nog faalt, geeft deze versie in het loginvenster voortaan de daadwerkelijke serverfout weer — bijvoorbeeld “Code klopt niet”, “Geen geldige code gevonden”, “E-mail of wachtwoord klopt niet” of een backend-timeout — waardoor we de volgende fout exact kunnen isoleren.
Klopt — <> betekent vanaf nu: geef de volledige vervangende codebestanden. Ik heb daarom de complete bestaande bestanden behouden en de FAST-wijzigingen erin verwerkt.
De nieuwe versie bevat onder andere: één definitieve x27NewsCachedFast(), één definitieve x27NewsLiveFast(), de nieuwe echte x27NewsFrontFast(), geen automatische live RSS-call meer 150 ms na openen, geen automatische volledige V10-indexscan meer bij openen, een lichtere handmatige ↻ Update, CacheService voor de eerste nieuwsweergave en behoud van Players, AI, MD, vertalingen, exports, login, filters en overige bestaande onderdelen. De oorspronkelijke V9/V10-query las voor nieuws de volledige FeedItems-tab en verrijkte daarna de volledige selectie; dat blijft beschikbaar voor Intelligence/filteracties maar staat nu niet meer in het kritieke opstartpad. De startup startte eerder direct meerdere nieuwsprocessen achter elkaar; die automatische zware calls zijn nu verwijderd.
Ik heb beide bestanden bovendien op JavaScript-syntax gecontroleerd en gecontroleerd dat de drie belangrijke publieke FAST-functies ieder nog maar één keer bestaan.
⬇ Volledige Code.gs · X2027 v10.3.3 FAST
⬇ Volledige Index.html · X2027 v10.3.3 FAST
Voor appsscript.json kun je dezelfde instellingen houden, maar ik zou de tijdzone aanpassen naar:
{
"timeZone": "Europe/Amsterdam",
"dependencies": {},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
"executeAs": "USER_DEPLOYING",
"access": "ANYONE_ANONYMOUS"
}
}
Na vervangen van Code.gs en Index.html: opslaan → nieuwe implementatie/deploymentversie maken → dezelfde /exec-URL opnieuw testen. Voor de achtergrond-updates moet x27InstallNewsTrigger() één keer actief zijn; daarna kan de zware bronronde ieder uur plaatsvinden zonder dat een bezoeker daarop hoeft te wachten.