Skip to content
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

Webpage refresh not working anymore (Firefox) #3041

Closed
friedpa opened this issue Apr 19, 2024 · 15 comments
Closed

Webpage refresh not working anymore (Firefox) #3041

friedpa opened this issue Apr 19, 2024 · 15 comments
Labels
bug Something isn't working

Comments

@friedpa
Copy link

friedpa commented Apr 19, 2024

The Problem

I noticed today that the Webpage in Firefox is not working any longer. Unfortunately I cannot say since which version this behaviour occured. I remember that tis refresh was set to 5 Minutes.

Version

latest rolling: Commit: 32282ec+

Logfile

N/A

Expected Behavior

No response

Screenshots

No response

Additional Context

No response

@friedpa friedpa added the bug Something isn't working label Apr 19, 2024
@SybexX
Copy link
Collaborator

SybexX commented Apr 19, 2024

I think it's because of Firefox, because in my opinion the page is updated using a cookie.

the errors it gives:

Synchronous XMLHttpRequests on the main thread should no longer be used because it has detrimental effects on the end user experience. For further help see https://xhr.spec.whatwg.org/#sync-warning readconfigcommon.js

The page cookie does not have a valid value for the SameSite attribute. Soon, cookies without the "SameSite" attribute or with an invalid value for it will be treated as "Lax". This means the cookie is no longer sent to contexts belonging to a third party. If your application requires the cookie in these contexts, please add the "SameSite=None" attribute to it. For more information about the SameSite attribute, see https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite.

@caco3
Copy link
Collaborator

caco3 commented Apr 19, 2024

Ich denke, das hat nichts mit den cookies zu tun. Das cookie haben wir ja nur, damit wir bei einem Page refresh wieder auf dem gleichen Tab landen.

Das Problem mit den Synchronous XMLHttpRequests ist, dass sie synchron sind. D.h., wenn man einen Request sendet, bleibt das ganze WebUI blockiert, bis die Antwort oder Timeout kommt. Das ist leider nicht sehr responsive, und ist nicht mehr zeitgemäss.

Eigentlich sollten wir das UI umbauen, dass das alles asynchron passiert. Aber das ist leider einiges an Arbeit, weshalb ich das von meiner Seite auf die lange Bank geschoben habe ala, geht ja auch ohne.

Aber zu deinem Problem:
Ich meine auch, dass das mal funktioniert hat. Ich würde erwarten, dass das Web UI einen Timer hat (Javascript setInterval()), der die relevanten Daten periodisch auffrischt. Aber ich finde nichts dazu und sehe auch nicht, dass da mal etwas entfernt wurde :(
Weist Du noch, was alles aktualisiert wurde? War es einfach alles auf der Overview-Seite?

@Slider0007
Copy link
Collaborator

Hier wird das Refresh der overview page realisiert.
https://github.com/jomjol/AI-on-the-edge-device/blob/rolling/sd-card%2Fhtml%2Foverview.html#L172

@SybexX
Copy link
Collaborator

SybexX commented Apr 20, 2024

Diese Funktion ist ja immer noch vorhanden, nur scheint dies nicht zu funktionieren. Ich habe mal im Internet nach Refresh gesucht und auch was funktionierendes gefunden, nur kamm jedes mal beim Refresh eine Meldung seitens Firefox und deshalb habe ich alles verworfen. Denn ob ich jetzt jedes mal beim Firefox auf "zulassen" klicke oder auf den Reiter Overview um die Seite zu aktuallisieren, macht für mich kein Unterschied/Sinn.

@friedpa
Copy link
Author

friedpa commented Apr 20, 2024

Es war nur die Overview Seite die Refreshed wurde. Ich habe meine zwei Systeme auf einem Übersichtsmonitor im Büro angezeigt und das war halt praktisch mit dem AutoRefresh. Man kann das Problem in Firefox aber auch so lösen, dass man ein Addon wie TabReloader verwendet.

@caco3
Copy link
Collaborator

caco3 commented Apr 20, 2024

Hier wird das Refresh der overview page realisiert. https://github.com/jomjol/AI-on-the-edge-device/blob/rolling/sd-card%2Fhtml%2Foverview.html#L172

Danke!
Und soweit ich sehen kann, funktioniert es auch noch, zumindest unter Linux mit Firefox 124:
grafik

Der richtige Weg wäre, wo etwas mittels Websocket zu lösen. Ich hatte das mal in #2370 versucht, allerdings lief es nicht stabil. Vermutlich passen einige Thread sizes noch nicht (obwohl ich da recht rumgespielt habe).

Langfristig müssen wir aber auch auf asynchronous wechseln :(

@SybexX
Copy link
Collaborator

SybexX commented Apr 20, 2024

jetz weiß ich weshalb Autorefresh nicht geht^^
in der overview, index und einigen anderen Dateien wurde aus "xhttp.open("GET", url, false);" auf "xhttp.open("GET", url, true);" gestellt, das wurde bestimmt gemacht um den Fehler "Synchronous XMLHttpRequests" zu beseitigen, nur verursacht dies halt Probleme.

@Slider0007
Copy link
Collaborator

Slider0007 commented Apr 20, 2024

Und soweit ich sehen kann, funktioniert es auch noch, zumindest unter Linux mit Firefox 124:

Ich habe den gleichen Refresh Algo bei mir auch im Einsatz. Mit Firefox damit aber keine Probleme. Wenn Probleme, dann müsste es im Aufruf-Kontext irgendwo haken.

Der richtige Weg wäre, wo etwas mittels Websocket zu lösen. Ich hatte das mal in #2370 versucht, allerdings lief es nicht stabil. Vermutlich passen einige Thread sizes noch nicht (obwohl ich da recht rumgespielt habe).

Langfristig müssen wir aber auch auf asynchronous wechseln :(

Meiner Meinung nach muss es nicht zwingend Websocket sein, sondern nur eine effizientere Polling Strategie (mit so wenig Requests wie möglich, da der Webserver immer nur einen Request verarbeiten kann) und asynchronem Update des Contents anstatt die gesamte Seite zu refreshen. Hiermit lässt sich eine sehr niedrige Update Rate und annehmbare Responiveness realisieren.

So habe ich das in meinem Fork realisiert: Demo Sequenz einer Runde

Wenn Umstellung auf async requests, dann sollte auch gleich auf Fetch API umgestellt werden (zukunftfähiger). Das habe ich mir auch noch vorgenommen, bin aber noch nicht dazu gekommen. Async bringt schon etwas Responsiveness, auf jeden Fall gefühlt, da die Seite nicht mehr blockiert wird.

@caco3
Copy link
Collaborator

caco3 commented Aug 26, 2024

Habe das gerade mal bei mir getestet. Firefox refresht immer noch automatisch wie gehabt!

Getestet mit dem neusten rolling.

@friedpa Kannst Du das bei dir nochmals nachstellen?

@SybexX
Copy link
Collaborator

SybexX commented Aug 26, 2024

Unter Windows 10 hat es bei mir lange Zeit auch nicht funktioniert, aber anscheinend hat Firefox dieses Problem mit einem Update behoben und es funktioniert jetzt wieder^^
Anders kann ich es mir nicht erklären, da wir an der Serverimplementierung ja nichts geändert haben.

@caco3
Copy link
Collaborator

caco3 commented Aug 27, 2024

ich verwende Linux.
und ja, es sieht sehr nach einem client problem aus.

@friedpa
Copy link
Author

friedpa commented Aug 27, 2024

Gleich wie @SybexX: seit einem Update von Firefox funktioniert der autom. Refresh wieder. Ich habe leider vergessen das Ticket zu schließen... sorry!
by the way: Früher gabe es ein nettes ICON beim Reiter in Firefox...

grafik

@friedpa friedpa closed this as completed Aug 27, 2024
@friedpa
Copy link
Author

friedpa commented Aug 27, 2024

Closed (fixed by Firefox Developers).

@caco3
Copy link
Collaborator

caco3 commented Aug 27, 2024

by the way: Früher gabe es ein nettes ICON beim Reiter in Firefox...

Stimmt.
Habe es mir gerade angeschaut. Auch da scheint Firefox ein Problem zu haben. Mit Chrome/Chromium geht es nämlich.
Ich habe jetzt die svg-Variante entfernt, damit geht es auch im Firefox wieder: 2c69e90

@friedpa
Copy link
Author

friedpa commented Aug 28, 2024

ICON in Firefox wieder vorhanden.
Issue anyway closed, so thanks for your effort.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants