-
Notifications
You must be signed in to change notification settings - Fork 17
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
using mercure somehow breaks bfcache #696
Comments
I just tried on my server changing |
on my own testing it's still some bit inconsistent, you sure that you didn't forgot to enable mercure back when testing? |
I am very sure that mercure was deactivated when testing, however Fennec still had the problems, because the notifications controller is always loaded, even when mercure is disabled |
But enabling mercure still breaks the cache, that's for sure 😁 |
yeah that seems to be it, it looks like the other half/part seems to be having mercure connection opened at all, so that's more to investigate |
I just tried enabling mercure, but have it not be reachable, so the request fails instantly. That solves the issue. But I think our code behaves differently when the connection is established versus not established... It is really a bummer that it doesn't just use web sockets, but this weird "eventsource" call... |
Maybe I am wrong about it though. Seems like eventsources are way older and have wider support than websockets... Still weird |
This issue is stale because it has been open 50 days with no activity. Remove stale label or comment or this will be closed in 6 days. |
in short: mercure + bfcache +
=> page cannot be stored in bfcache, causing every navigation to do a page loadonbeforeunload
possible solution: rewrite teardown function to either use
pagehide
event or stimulusjsdisconnect()
functionnote that I might be off here, if anyone knows what's more likely them I'm all ears
EDIT 1: ok, maybe
onbeforeunload
isn't tha main culprit, it seems like having an open connection to mercure at all breaks bfcache, still needs more investigatingbased on discussion/discovery here
Originally posted by @BentiGorlich in #689 (comment)
merde*, I think I have idea why:
onbeforeunload
event listener to tear down the mercure connectionmbin/assets/controllers/notifications_controller.js
Lines 13 to 21 in 3e68837
beforeunload
listener is used (the docs seems ancient but that's the only page of firefox bfcache docs I could find atm)* somehow this sound came up in my head upon reading that
Originally posted by @asdfzdfj in #689 (comment)
The text was updated successfully, but these errors were encountered: