Changeset 6fab3f3 in Klonkt for src/assets/js/guardian.js
- Timestamp:
- 08/08/2026 10:42:20 PM (4 weeks ago)
- Branches:
- main
- Children:
- cae7bfc
- Parents:
- 060d4a5
- git-author:
- Robin <roboburr@…> (08/08/2026 10:42:18 PM)
- git-committer:
- roboburr <roboburr@…> (08/08/2026 10:42:20 PM)
- File:
-
- 1 edited
-
src/assets/js/guardian.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/guardian.js
r060d4a5 r6fab3f3 967 967 } 968 968 969 // ── De lange poll (Barts opdracht, 9-8) ────────────────────────────── 970 // 971 // Het paneel tikte elke 45 seconden, ongeacht of er iets gebeurd was. Nu hangt 972 // er een verzoek open tot er iets is dat je moet verwerken -- een aanbod, een 973 // volgverzoek, een gate-voorstel, een hulpvraag. Dat is niet alleen zuiniger, 974 // het is ook SNELLER: een hulproep stond eerst tot drie kwartier van een 975 // minuut op het scherm te wachten. 976 // 977 // 304 = stilte, en dan meteen opnieuw wachten. Alleen bij 200 wordt er iets 978 // opnieuw getekend. 979 var pollBezig = false; 980 function longPoll() { 981 if (pollBezig || document.hidden) return; 982 pollBezig = true; 983 fetch('/guardian/api/state?wait=25&site=' + encodeURIComponent(S.site)) 984 .then(function (r) { 985 pollBezig = false; 986 if (r.status === 304) return null; // stilte 987 return r.json().then(function (s) { 988 if (s && !s.error) { S = s; T = s.strings || T; renderAll(); } 989 return loadFeed().then(loadFollowReqs); 990 }); 991 }) 992 .then(function () { setTimeout(longPoll, 200); }) 993 .catch(function () { 994 // Netwerk weg of server herstart: niet meteen opnieuw beuken. 995 pollBezig = false; 996 setTimeout(longPoll, 5000); 997 }); 998 } 999 969 1000 // ── 2. Adopt ─────────────────────────────────────────────────────────── 970 1001 var form = document.getElementById('adopt-form'); … … 1072 1103 // kijkt: dat waren verzoeken voor een tabblad op de achtergrond. Bij terugkomen 1073 1104 // meteen een keer, want dan is de kans op nieuws het grootst. 1074 setInterval(function () { if (!document.hidden) refresh(); }, 45000); 1075 document.addEventListener('visibilitychange', function () { if (!document.hidden) refresh(); }); 1105 // De lange poll doet het werk. Het tikje blijft als vangnet, maar veel trager: 1106 // valt er een wekker weg (een pad dat niet wekt, een herstart midden in een 1107 // verzoek), dan mag het scherm niet voorgoed stilstaan. Vijf minuten in plaats 1108 // van vijfenveertig seconden, en met de ETag kost zo'n tik meestal een lege 304. 1109 longPoll(); 1110 setInterval(function () { if (!document.hidden) refresh(); }, 300000); 1111 document.addEventListener('visibilitychange', function () { 1112 if (document.hidden) return; 1113 refresh(); 1114 longPoll(); // bij terugkomst weer een wachter openzetten 1115 }); 1076 1116 } catch (e) { 1077 1117 fatal((e && e.message) || String(e));
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)