Aktionen im Profil erzeugen leere DropdownMenus

  • Affected App
    WoltLab Suite Core

    Hallo Woltlab-Team,


    ich habe gerade mit Hilfe des Firefox "Web-Developer" festegestellt, dass bei jeder Aktion im Profil neue

    Code
    <ul class="dropdownMenu"></ul>

    in den

    Code
    <div id="dropdownMenuContainer">

    verschoben werden und auch nicht mehr removed werden, sondern dort verbleiben.


    Dadurch wird die Seite von mal zu mal langsamer (Merkbar nach ca. 20-40 Aktionen). Dies liegt wahrscheinlich aber nicht an den wenigen zustätzlichen Zeichen, sondern wahrscheinlich an irgendwelchen "jQuery-Hintergrund-Aktivitäten" in Zusammenhang mit den Dropdowns. (Besser kann ich es nicht ausdrücken)


    Zum Reproduzieren:
    0) Profil öffnen, z.B. Reiter Pinnwand und den <div id="dropdownMenuContainer"> beobachten, z.B. mit oben genanntem Tool.
    1) Dort einen Kommentar abschicken -> Neue, leere Dropdowns entstehen
    2) Klick auf "Gefällt mir" -> Neue, leere Dropdowns entstehen
    3) Klick auf "Gefällt mir nicht" -> Neue, leere Dropdowns entstehen
    4) Klick auf "Bearbeiten" -> Neue leere Dropdowns entstehen
    5) Das selbe im Reiter "Letzte Aktivitäten":
    6) Dort auf "Weitere Aktivitäten" klicken -> Neues leeres Dropdown ensteht


    Beim Pinnwand-Reiter sind es jeweils zwei neue Dropdowns, die enststehen. Bei Weitere Aktivitäten habe ich nur ein neues beobachtet.
    Das Problem scheint es also im ganzen Profil zu geben.


    Beste Grüße,


    Less

  • Danke für die Rückmeldung!
    Das Lag scheint in der Tat verschwunden zu sein, allerdings werden weiterhin bei jeder Aktion im Profil (Liken, Disliken, etc.) immerwieder zwei neue Dropdown-Container angelegt. Gut, dass diese eine Funktion für die Navigation bei zu kleiner Fensterbreite besitzen, aber dies ändert ja nichts daran, dass es immer mehr werden, sprich manche Drowpdowns werden anscheinend relativ schnell überflüssig, verbleiben aber im System. Und d.h. ja, dass sie an irgendeiner Stelle nicht richtig entfernt werden.


    Beste Grüße,
    Less

    • Official Post

    Hallo,


    soweit ich das gestern beim Testen beurteilen konnte werden alle von den Element irgendwann, wenn das Fenster klein genug wird, verwendet (d.h. mit Inhalt versehen). Ich denke aber auch nicht, dass diese wirklich für einen spürbaren Performanceverlust sorgen, sodass es wohl vergebene Mühe wäre das jetzt komplett auseinanderzubauen. Meld' dich einfach noch mal, wenn du irgendwelche Gegenteiligen Erfahrungen machst (oder vielleicht konkrete Ideen) :)

  • Hallo,


    ich habe es mir nochmal angesehen. Ein Großteil der fortlaufend angelegten Dropdown-Container wird auch beim Verkleinern des Fensters nicht genutzt. Dies wird deutlich, je mehr Aktionen man im Profil ausführt. Nach 10 Aktionen sind schon ein Großteil der Dropdowns überflüssig und erlangen auch später keine Funktion. (Welche sollte dies auch sein? Denn beim Verkleinern wird ja nur eine handvoll an Dropdowns genutzt und welche Dropdown-Funktion sollte bei einem Klick auf "Like" nötig werden?)


    Aber es ist wie du schreibst: Einen Performance-Verlust gibt es nicht mehr (und dass ist das wichtige) und so ist es ein Problem, wovon man im laufenden Forenbetrieb nichts mitbekommt. Und nach einem Reload der Seite sind die "alten" Container eh weg.


    Für eine konkrete Lösung fehlt mir leider der Überblick über alle JS-Funktionen und Abläufe des WCF. Rein logisch vermute ich einen profilweiten click-event, der die Dropdowns erzeugt. Vielleicht könnte man diesen konkretisieren (1) oder bei Ausführung vorab die veralteten Container entfernen (2) (sofern die IDs bekannt sind) oder alternativ (3) eine Abfrage, ob bereits nötige Container vorhanden sind, so dass keine neuen erzeugt werden. Oder letzte Möglichkeit: Dass bestehende Container aktualisiert werden (4).


    Aber dies nur "aus der Ferne" - für mich reicht auch der jetzige Stand, sprich das behobende Performance-Lag. Und für diese Behebung besten Dank!


    Beste Grüße,
    Less

    Edited once, last by less ().

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!