Viele Anfragen zum Senden für Video-/Audio-Upload beim Bearbeiten des Beitrags

Hallo zusammen! Ich möchte einen Fehler melden.

Reproduzierbar in v2.4.5 und v2.5.0.

Voraussetzungen

  • Erstellen Sie einen Beitrag mit einem hochgeladenen Video oder Audio.
  • Ich habe es mit einer sicheren Medienhochladung getestet, es sollte aber auch bei unsicheren Medien auftreten.
  • Beginnen Sie mit der Bearbeitung des Beitrags.
  • Öffnen Sie die Entwicklerkonsole des Browsers. Optional können Sie einen Filter für die Upload-API setzen.
  • Warten Sie, bis alle Anfragen abgeschlossen sind, und leeren Sie dann die Konsole.

Schritte zur Reproduktion

  • Geben Sie im linken (Bearbeitungs-)Bereich etwas ein.
  • Überprüfen Sie die Entwicklerkonsole des Browsers.

Tatsächliches Ergebnis

  • Jede Tastenanschlag wird als Änderung gewertet, sodass beim einfachen Tippen ständig Video-Upload-Ereignisse ausgelöst werden.
  • Viele Änderungen führen zum Senden einer großen Anzahl von Anfragen, was dann zu einer Ablehnung der Anfragen aufgrund des API-Ratenlimits und zur automatischen Abmeldung vom Forum führt.

Erwartetes Ergebnis

  • Keine Anfragen für Audio-/Video-Uploads während der Bearbeitung eines Beitrags

Siehe GIF:

Hinweis zum Fehler:

Diese Zeile verursacht den Fehler. Sie ruft bei jeder Vorschau-Rendering, also bei jeder Änderung des Beitrags, die load-Funktion des

3 „Gefällt mir“

Tritt es in der 2.6 Beta weiterhin auf?

Ja, das Problem besteht sowohl in der Version 2.6beta als auch im neuesten Commit (208d85aaff0392a3a796f84ea78670def6ed7b8e) des test-passed-Branches fort.

Das ist seltsam. Ich kann das Problem nur reproduzieren, wenn ich im Reiter „Netzwerk

1 „Gefällt mir“

“Cache deaktivieren” darf das Senden von Anfragen nicht beeinflussen. Es bestimmt lediglich, woher das Ergebnis einer Anfrage stammt – entweder aus dem Browser-Cache oder aus der eigentlichen Quelle.

Diese Upload-Anfragen werden vom Code gesendet, der die Vorschau bei jedem Tastendruck neu rendert, was zur Erstellung eines neuen Video-/Audio-DOM-Elements führt. Daher wird load für ein neues DOM-Element aufgerufen, was definitiv eine Anfrage auslösen muss.
Selbst wenn es sich um ein zwischengespeichertes (nicht bei jedem Mal neu erstelltes) DOM-Element handeln würde, wird unabhängig von der Einstellung “Cache deaktivieren” nur einmal eine Anfrage gesendet.

Ich habe mir das angesehen und kann es sowohl bei sicheren als auch bei unsicheren Video-Uploads teilweise reproduzieren. Irgendwann scheint es zu cachen und diese Anfragen nicht mehr zu spammen, aber es bleibt ein Problem. Die Zeile, auf die du hingewiesen hast:

wurde von mir hinzugefügt, scheint aber aktuell keine Auswirkungen mehr zu haben. Wenn ich sie entferne, funktionieren die Video-Vorschaubilder weiterhin einwandfrei. Mir ist bekannt, dass wir bereits andere Arbeiten an Video-Thumbnails usw. durchgeführt haben, die wahrscheinlich das Problem behoben haben, für das ich diese Zeile hier eingefügt habe. Daher werde ich sie einfach entfernen, was das Problem mit den mehrfachen Anfragen löst.

3 „Gefällt mir“

Ein Fix wurde zusammengeführt FIX: Remove unnecessary audio/video parent element load by martin-brennan · Pull Request #10511 · discourse/discourse · GitHub. Übrigens vielen Dank für den detaillierten Fehlerbericht! @kkurdupov

4 „Gefällt mir“