Hallo.
Etwas, das ich an NodeBB mehr mag als an Discourse, ist der Effekt beim Seitenübergang.
Der Hauptunterschied besteht darin, dass bei Discourse der HTML-Inhalt sofort entfernt wird, sobald man auf einen Link klickt, während bei NodeBB der Inhalt erhalten bleibt, bis der neue Inhalt bereit zur Anzeige ist. Dies ermöglicht einen schönen Ausblendeffekt für den Inhalt, während die nächste Seite lädt.
Wäre eine solche Änderung möglich? Würde dies umfangreiche Programmierarbeiten erfordern?
Ich habe das gerade auf TLP getestet und es funktioniert, aber die Änderungen sind in vorhandene Überschreibungen dieser Komponente eingebettet. Entschuldigt also, falls sich ein Tippfehler eingeschlichen hat – ich habe lediglich den gesamten unnötigen TLP-Code entfernt.
Ich bin versucht, dies als zusätzliche Option für TLP hinzuzufügen
Hinweis: Dies unterstützt derzeit keine Kategorie-Seiten. Ihr müsst die Idee noch weiterentwickeln.
Hallo, ich habe das Feature in deinem Plugin ausprobiert, aber es ist nicht ganz dasselbe: Wenn ich die Themenliste anzeige, wird der angeforderte Inhalt nach dem Laden eingeblendet. Bei NodeBB hingegen wird der aktuelle Inhalt ausgeblendet, während der nächste Inhalt geladen wird.
Das Wichtigste ist, dass wir einen Weg finden müssen, um zu verhindern, dass Discourse das aktuelle HTML sofort nach dem Klicken auf einen Link entfernt. Das HTML sollte an Ort und Stelle bleiben, bis der neue Inhalt geladen ist (oder bis der Ausblendeffekt beendet ist – ich bin mir nicht sicher, ob das besser ist ) und bereit zur Anzeige ist.
Hmmm, okay. Was ich bereitgestellt habe, entspricht also nur 50 % dessen, was Sie nun beschreiben (hinsichtlich der Animation, wenn nicht sogar des Programmieraufwands!). Sie möchten im Wesentlichen den Abriss verzögern und den Lade-Spinner durch einen Ausblend-Effekt ersetzen. Allerdings bin ich nicht davon überzeugt, dass Ihre Annahme darüber, was auf dem anderen System passiert, zutrifft. Es gibt sicher keine Möglichkeit vorherzusagen, wie lange der Datenabruf mit einem asynchronen Aufruf dauert, sodass der Ausblend-Effekt nicht perfekt synchronisiert sein wird, selbst wenn es so aussieht. Vielleicht gibt es eine kurze Verzögerung, wenn die Inhalte leer sind. Sie können gerne nachfassen und den Rest gemeinsam erarbeiten und teilen, auch wenn dies keine triviale Aufgabe sein wird. da der Discourse-Spinner auf der neuen Route erscheint, nicht am Ende der alten. Update: Nein, das ist nicht der Fall. Er befindet sich in einem eigenen kleinen div, das bei Bedarf sichtbar gemacht wird. Einige zusätzliche Hinweise: Der Listen-Container wird kurz nach der Klick-Aktion ausgeblendet, was den Listenbereich scheinbar sofort auflöst (möglicherweise eine implizite Ember-Optimierung, bin mir aber nicht sicher). Man müsste dieses Verhalten zunächst ändern.
Natürlich liest es die Zukunft nicht . Der Ausblendeffekt in NodeBB dauert etwa 200 ms. Wenn das Laden der Seite länger dauert, sehen Sie vorübergehend einen leeren Bildschirm.
Und ja, Sie haben recht: Die Idee besteht im Wesentlichen darin, den Ladeindikator durch einen Ausblendeffekt mit fester Dauer zu ersetzen.
Ist die Ladezeit kürzer als die Dauer des Ausblendeffekts, sollte dieser unterbrochen werden, damit der neue Inhalt angezeigt werden kann.
Programmieren ist nicht meine Hauptstärke, und ich weiß nicht genau, wie Discourse funktioniert. Ich bin mir nicht sicher, ob ich das herausfinden werde, aber es lohnt sich, einen Blick darauf zu werfen.