Discourse wird in älteren Browsern nicht geladen

Ich bin ein Benutzer von community(dot)jenkins(dot)io (Entschuldigung, ich kann nur 2 Links posten), das laut einem der Administratoren eine Discourse-Instanz verwendet, die von der offiziellen Discourse-Gruppe gesponsert wird. Der Meta-Tag im Header/Quelltext besagt Discourse 2.9.0.beta2

Irgendwann zwischen Montag und Mittwoch dieser Woche (14./16.03.2022) lädt die Seite nicht mehr in älteren Android Firefox-Browsern. Insbesondere Firefox Android 68.11.0. Das ist offensichtlich auch der Kern für andere Browser wie Waterfox, Silk-Browser auf FireStick. Ich war noch nie hier, aber es lädt auch nicht. Die Seite scheint Daten für ein paar Sekunden abzurufen, dann ist sie leer. “Desktop-Website anfordern” ist ebenfalls leer. “Quelltext anzeigen” führt ins Nichts.

Ich habe dies auf der Jenkins-Seite gemeldet und der Administrator hat darauf hingewiesen, dass dies wahrscheinlich daran liegt, dass replaceAll in Firefox 68 nicht verfügbar ist und Beweise von Saucelabs (bei etwa 00:17 Sek. die Fehlermeldung) bereitgestellt.

Anfang dieses Monats hat eine JavaScript-Änderung die Funktionalität von StackOverflow (Link unten) zum zweiten Mal auf den StackOverflow/Exchange-Seiten beeinträchtigt. Sie haben es einmal im Dezember kaputt gemacht und repariert, und wir hoffen aufrichtig, dass sie diese Änderung rückgängig machen und diese Funktionalität wiederherstellen können.

Interessanterweise habe ich einen WINXP-PC mit FF 52.9.0 ESR gestartet und trotz des Banners “Ihr Browser ist zu alt, um auf dieser Website zu funktionieren” schien die Website gut zu laden, daher scheint es eher spezifisch/esoterisch zu sein.

Ich möchte das Discourse-Team bitten, zu überprüfen, welche Änderungen vorgenommen wurden und ob es eine Möglichkeit gibt, diese Breaking Change zu mildern. Ich erkenne an, dass nichts für immer unterstützt werden kann, insbesondere wenn es nicht im Testumfang liegt, aber wenn es gemeldet wird und wenn es eine offensichtliche Lösung ist, die die Bedienbarkeit nicht wesentlich beeinträchtigt, sollten Sie dies in Betracht ziehen. Ich suche nicht nach allen Funktionen, nur nach einigen Kernfunktionen (zumindest zum Lesen von Inhalten).

StackExchange-Link: meta(dot)stackexchange(dot)com/q/376694

10 „Gefällt mir“

Wir möchten auf jeden Fall immer eine schreibgeschützte Ansicht auf alten, nicht unterstützten Browsern anzeigen. Das Rendern wird unterbrochen und nur eine weiße Seite angezeigt, was ein Fehler ist.

Wir werden uns diese Regression in der nächsten Woche ansehen.

8 „Gefällt mir“

replaceAll wird auf iOS <= 13.3 nicht unterstützt

Dieser PR wird eine Erkennung für diese Funktion hinzufügen und bei Bedarf auf die einfache HTML-Ansicht zurückfallen:

12 „Gefällt mir“

3 Beiträge wurden in ein bestehendes Thema zusammengeführt: Frontend auf der Produktionsseite nicht verfügbar – Ember/Test-Fehler

Danke @Ian_W für den Bericht :+1:

Wir haben das Problem jetzt behoben. Dieses Thema wird in einem Tag geschlossen.

4 „Gefällt mir“

Ich kann nur Teilerfolge bei älteren Firefox-Versionen auf Android melden.

Sowohl auf meta.discourse.org als auch auf community.jenkins.io sehe ich nun das Banner „Browser ist zu alt“, genauso wie auf dem WINXP-PC mit FF 52.9.0 ESR.

Aber es gibt keine Themen, nur das Logo und die Fußzeile [Home .. Datenschutzrichtlinie].

Auf der Jenkins-Website sehe ich zwar die Kategorien, die Kategoriebeschreibungen und die Anzahl der „Themen“, aber wenn ich auf eine Kategorie klicke, kann ich wieder keine Probleme sehen.

4 „Gefällt mir“

1 „Gefällt mir“

Ich habe meta.discourse.org dazu gebracht, die alte HTML-Version in Firefox 40 zu rendern:

Dies sollte bei allen Firefox-Versionen < 77 passieren.

3 „Gefällt mir“

Wie bereits erwähnt, stammt mein Screenshot von der Android-Variante. Die Website scheint auf einer Desktop-Variante einwandfrei zu funktionieren.

Ich habe keine Ahnung, wie ich zusätzliche Informationen aus dem FF Android-Browser extrahieren kann, um bei der Fehlersuche zu helfen.

3 „Gefällt mir“

Habe gerade das veraltete Fennec Firefox 68.9 auf meinem Handy installiert, und es scheint jetzt zu funktionieren:

Irgendwelche Ideen, was mir fehlt, während ich versuche, den Fehler zu reproduzieren?

3 „Gefällt mir“

Nun, ich bin mir nicht sicher, was ich sagen soll. Ich habe gerade ein Android-Telefon mit Werkseinstellungen zurückgesetzt (läuft auf 7.0, da es ein altes Telefon ist), Firefox Android 68.11 APK heruntergeladen, installiert und zu meta(.)discourse(.)org navigiert ** und erhalte den vorherigen Screenshot.

Dann wird es seltsam. Gehe zu meta(.)discourse(.)org/t/ ** und ich erhalte:

„Hoppla! Diese Seite existiert nicht oder ist privat.“

Aber dann erhalte ich eine Liste von „Beliebten“ und „Neuesten“ Themen und kann dieses Thema hier sehen.
Wenn ich auf das Thema klicke, sehe ich nun den Thema-Titel, plus „bug“, „pri-high“, aber keinen Inhalt.

**: 2-Link-begrenzter Beitrag
(Kann auch keine Screenshots über die Benutzeroberfläche hochladen, musste sie daher einzeln per Antwort hochladen)

1 „Gefällt mir“

1 „Gefällt mir“

Ich schaue nur, falls jemand eine Lösung findet, um Discourse auf einem iPhone 6 zu nutzen, bevor ich mir doch ein neues Handy kaufe.

1 „Gefällt mir“

Ich habe dasselbe Problem, wie unten erklärt:

1 „Gefällt mir“

Für iOS < 13 oder veraltetes Firefox Fennec unter Android sollten wir die HTML-Ansicht anzeigen.

Dies gelingt uns jedoch nicht, da es keine HTML-Ansicht gibt, aufgrund von

was schon ewig in unserer Codebasis ist.

Das Einbeziehen des Crawler-Inhalts, damit wir auf die HTML-Ansicht zurückfallen können, ist teuer. Vielleicht möchten wir also alte Safari zu

hinzufügen, damit dies nur bei Bedarf geschieht?

Die andere Alternative wäre, Babel anzuweisen, replaceAll zu transpilieren / ein ausreichend gutes Polyfill zu finden.

cc @sam @david @gerhard

5 „Gefällt mir“

Andere Alternativen, die mir einfallen:

  1. browser_update_user_agents ganz streichen, eine IE6-konforme XHR-Anfrage verwenden, um den Inhalt für das Rendering auf diesen Browsern auf Mobilgeräten abzurufen. (JavaScript deaktivieren ist auf Mobilgeräten sowieso schon kaputt)

  2. Polyfill replaceAll

  3. Crawler-Inhalt bedingungslos einschließen (auch auf Mobilgeräten)

  4. Wie (1), aber die Einstellung als Mikrooptimierung beibehalten, Fallback zu XHR.

Ich schwanke irgendwo zwischen (1) und (3), (4)

7 „Gefällt mir“

3 ist etwas, das wir meiner Meinung nach irgendwann tun müssen, da die Anzahl der von ihren Herstellern aufgegebenen Mobilgeräte im Laufe der Zeit nur zunehmen wird. Es wird die Serverlast beim Ausfüllen der Vorlage erhöhen und unsere HTML-Größe auf Mobilgeräten vergrößern, aber meiner Meinung nach sollten wir es tun.

Ich würde also sagen, wir machen 3 und untersuchen, ob 1 und 2 machbar sind.

5 „Gefällt mir“

Wir könnten die Dinge auf den Kopf stellen, die mobile Optimierung nur für bestimmte Browser aktivieren. Das würde uns ermöglichen, diese Optimierung für 95 % des mobilen Traffics, der uns erreicht, beizubehalten und trotzdem sehr sicher zu sein?

3 „Gefällt mir“