curious what the most minimal ssg or front-end framework is for client-side switching between pages without a full reload?

also not sure what the technical term for that is

i’ve a couple sites built with gastby such as canalswans.commoninternet.net but all of react feels like overkill

@notplants @decentral1se @j12i got a version working today using 87 lines of plain javascript codeberg.org/notplants/thimble

more optimizations could be possible via using gzip, or maybe storing prefetched pages using javascript variables would be faster than using the cache (?) but I kind of like that this could be subbed into any static site without making any other modifications to it

Follow

@notplants @decentral1se @j12i

Very cool tbh 👀

line 84 (error handler) should probably do something to emulate clicking on the link and having it navigate normally. Because otherwise a missing cache entry on-click will result in a silent failure for the user.

@notplants @decentral1se @j12i

Might wanna do the same thing on line 81 as an `else` statement for `if (newMainContent) {`, to handle all cases.

Really don't wanna get into a situation where user clicks a link and nothing happens.

@notplants @decentral1se @j12i

Ideally you could delay calling `event.preventDefault();` until after you know that the quick-nav was successful. But due to the async nature of the cache and fetch mechanic, i don't think thats possible.

thanks for the code review @forestjohnson I appreciate it, and wouldn't have thought of those error conditions -- agreed having a link not do anything would suck, and emulating the default behavior when there was an error makes sense

also appreciating that because its a small piece of code, we actually have a decent chance of finding all possible bugs

when I was using gatsby often builds would get the most random and cryptic errors. a lot of clear the cache rm -r node_modules reinstall and then problem is gone

Sign in to participate in the conversation
Pixietown

Small server part of the pixie.town infrastructure. Registration is closed.