[Script] Limited Radio History: angezeigte Funk-Historie beschränken

  • Hallo liebe alle,


    heute habe ich euch mal ein Script mitgebracht, von dem ich persönlich mir erhoffe, dass es Performance-Einbrüche zu einem gewissen Grad verhindert: Limited Radio History.


    Was genau tut es?

    Es ermöglicht, die Zahl der angezeigten Funksprüche (und optional auch Sprechwünsche) zu beschränken. Standardmäßig werden so nur die 100 neuesten Funksprüche angezeigt. Alle früheren werden einfach ausgeblendet. Eventuell werde ich später noch einbauen, dass diese auch aktiv aus der Seite entfernt werden und nicht nur ausgeblendet.

    Man kann das ganze auch komplett individuell konfigurieren.


    Welche Einstellungen gibt es?

    Zeile 68: limit: Stelle hier ein, wie viele Funksprüche angezeigt werden sollen. Standard sind 100. Ist dies auf 0 gesetzt, werden immer alle Funksprüche angezeigt.

    Zeile 71: limitSprechwunsch: Stelle hier ein, wie viele Sprechwünsche gleichzeitig angezeigt werden sollen. Standard ist 0 (alle). Ist dies auf 0 gesetzt, werden immer alle Funksprüche angezeigt.

    Zeile 74: disableSprechwunschBlinking: Deaktiviere hiermit das Blinken des "Status 5"-Feldes. Standard: false (Blinken aktiviert). Der Wert true deaktiviert das Blinken.


    Bringt das überhaupt irgendwas?

    Ich weiß es ehrlich gesagt nicht, aber ich hab schon ein bisschen die Hoffnung, da der Browser so weniger Elemente rendern muss und somit bei neuen Funksprüchen weniger Elemente verschieben und deren Position neu berechnen muss. Zumindest gehe ich davon aus, dass der Browser das bei ausgeblendeten Elementen nicht macht.

    Um das ganze noch weiter zu optimieren, ist aber der Plan, "regelmäßig" (da muss ich mir noch überlegen, was ein sinnvoller Trigger sein könnte), die alten Elemente auch ganz rauszuschmeißen und nicht nur auszublenden. Im besten Fall schont auch das nochmals Ressourcen.


    Wo Installationslink?

    Da Installationslink: https://github.com/jxn-30/LSS-…mitedRadioHistory.user.js



    Ich wünsche euch viel Spaß mit dem Script und hoffe, dass es vielleicht das ein oder andere Bit RAM einspart :P

    Viele Grüße
    Jan <3

  • Ich wünsche euch viel Spaß mit dem Script und hoffe, dass es vielleicht das ein oder andere Bit RAM einspart :P

    Vielen Dank für das Script; selbst wenn es nur einen halben Bit RAM einspart wird es bei mir dauernd AN sein; dieses "zappeln und blinken" der Funk- und Sprechwünsche hat mich schon immer genervt ;) Wenn man die Funksprüche ganz ausschalten/ausblenden könnte (habe sie derzeit auf "1" stehen) würde ich es noch besser finden.



    Könntest Du dieses Script so erweitern (oder ggfls. ein neues erstellen) dass der "InfoBanner" im Alarmierungsfenster über erfolgreich informierte Fahrzeuge ausblendet bzw. nicht angezeigt wird. Eine Benachrichtigung, wenn es Probleme bei der Alarmierung gibt oder gab, reicht mir; ich muss nicht bei jedem Einsatz wissen das x Fahrzeuge erfolgreich informiert wurden...:rolleyes:

  • Jan (jxn_30) Dürfte ab einer gewissen Länge der Statusmeldungen tatsächlich Auswirkung auf die Performance haben. Ich bemerke deutliche Reduktion des Speicherverbrauchs beim Neuladen der Spieleseite und test gerne aus, wie es sich mit dem Script auswirkt.


    Das Entfernen der Elemente aus dem DOM dürfte keinen weitere Auswirkungen auf die Rendering-Performance haben (evtl. jedoch auf das Erstellen der Rendering-Struktur). Wichtig ist (wie du es umgesetzt hast), dass mit `display: none` die Elemente ausgeblendet werden und nicht mit `visibility: hidden`. Details siehe https://web.dev/articles/criti…r-tree-construction?hl=de.

  • Frage:

    Könnte man das Script auch so basteln das gar kein Funk da ist ausser S5 und S6 ? Das sind die eigentlich wichtigstens Infos im Funk die ich brauche. Oder gibt es gar schon so ein Script und ich hab es nur nicht gefunden?


    LG
    Chris

    Ich danke den Erfindern und Entwicklern dieses Spiels mit einem 3-Fachen:

    • GuT-Wehr
    • GuT-Wehr
    • GuT-Wehr

    Mein Heimatverband ist 112RescueTeam110, jeder ,mit dem Sitz der Leitstelle in Berlin/Brandenburg, ist herzlich willkommen. <3

  • Frage:

    Könnte man das Script auch so basteln das gar kein Funk da ist ausser S5 und S6 ? Das sind die eigentlich wichtigstens Infos im Funk die ich brauche. Oder gibt es gar schon so ein Script und ich hab es nur nicht gefunden?


    LG
    Chris

    Wäre in der Tat auch eine Idee, da ein Filter mit einzubauen. Überleg ich mir mal, ob und wie :)

  • Läuft super - Wenn es vermutlich nur der Kopf denkt das es was bringt. Aber weniger nachladen musste ich heut schonmal.


    Kleiner Hinweis: Standard ist bei const limit = 100; - Zumindest kommt der wert so, wenn ich das Skript installiere

    Sollte ich jemals danebengreifen oder einen falschen Ton anschlagen haben, zögert nicht, mich persönlich zu kontaktieren. Ich schätze offene Gespräche und bin immer bereit, Feedback zu empfangen. Bitte meldet euch zuerst per Privatnachricht – und wenn es sein muss, könnt ihr mich danach gerne blockieren.

  • Kleiner Hinweis: Standard ist bei const limit = 100; - Zumindest kommt der wert so, wenn ich das Skript installiere

    Joa, das stimmt allerdings. Als ich den Forenbeitrag verfasst habe, war der Standard noch 20, aber das hat wohl mein (zu diesem Zeitpunkt noch) Zukunfts-Ich dann noch geändert. Ich pass das oben mal an :)

  • Kurzes Feedback: Selbst nach einer Spielzeit von über 2 Stunden und mehreren Hundert Alarmierungen, hat der maximale Speicherverbrauch 435 MB nicht überstiegen. Zuvor waren über 800 MB nicht selten. 👍🏻

    Die Aussage muss ich leider revidieren, habe wieder einen Speicherverbrauch von über 800 MB erreicht - trotz aktiviertem Script.

    Einmal editiert, zuletzt von BOS-Ernie ()

  • Frage:

    Könnte man das Script auch so basteln das gar kein Funk da ist ausser S5 und S6 ? Das sind die eigentlich wichtigstens Infos im Funk die ich brauche. Oder gibt es gar schon so ein Script und ich hab es nur nicht gefunden?


    LG
    Chris

    Naja solange es den Pendelverkehr für Patienten nicht gibt - ist S7 erforderlich um weiterzualarmieren

  • [...]

    Um das ganze noch weiter zu optimieren, ist aber der Plan, "regelmäßig" (da muss ich mir noch überlegen, was ein sinnvoller Trigger sein könnte), die alten Elemente auch ganz rauszuschmeißen und nicht nur auszublenden. Im besten Fall schont auch das nochmals Ressourcen.
    [...]

    Hängs doch an die Radiomessage() ;)

    Was anderes: Script laden auf document-start und die Radiomessage Funktion überschreiben, so dass bei 0 die Sprechwünsche (außer 5) gar nicht mehr erst erstellt werden?
    PS: deleteRadioMessage(e) ist bekannt?

    Ein Vakuum, geschaffen durch fehlende Kommunikation,

    füllt sich in kürzester Zeit mit falscher Darstellung, Gerüchten, Geschwätz und Gift. - Cyril Northcote Parkinson


    Der beste Verband in Aachen und Umgebung: leitstellenspiel.de/alliances/1100



    Schraube manchmal am LSSM V4 rum.

  • Hängs doch an die Radiomessage() ;)

    Ja, das ist durchaus eine Möglichkeit. Allerdings kostet jedes Entfernen auch wieder Zeit X und ich bin nicht tief genug in der Materie, um zu wissen, ob es ein "Entferne Y Elemente in Zeit ≤ X*Y" gibt. Wenn ja, wäre das meiner Meinung nach die präferierte Variante und es dann nicht an die RadioMessage zu koppeln, da die ja doch sehr häufig aufgerufen wird potentiell. Da könnte man ggf. mehr Rechenleistung und -zeit sparen, wenn man das auf eine andere Art macht. Muss man aber rumspielen :)


    Was anderes: Script laden auf document-start und die Radiomessage Funktion überschreiben, so dass bei 0 die Sprechwünsche (außer 5) gar nicht mehr erst erstellt werden?

    Also 0 ist ja aktuell ein "Zeige alle" :P

    Wenn man aber ein "Zeige keine" einführen sollte, wäre das in der Tat eine Möglichkeit. Wobei ich da auch ein bisschen Angst hätte, dass ich da versehentlich irgendwas kaputt mach von Scripts, die mit der Funktion arbeiten (gibt es da eins, das ein Element direkt nach der Erstellung eines Funkspruchs erwartet?). Würde aber auf jeden Fall auch noch mal mehr einsparen, als wenn man sie hinzufügt aber eben ausblendet.


    PS: deleteRadioMessage(e) ist bekannt?

    Jep, aber aufgrund des jQuery-Overheads möchte ich das lieber nicht nutzen. Und wenn ich eine effiziente Methode finde, mehrere Elemente zu Batch-entfernen, dann wird die von mir auch bevorzugt werden.


    Ich finds aber super, dass das so im aktuellen Stadium schon allein mit Ausblenden so einen krassen Vorteil bringt :)

  • Wenn ich Werte im Script geändert habe, mittels Tamperrmonkey Editor, muss ich die noch speichern? Wenn ja, wie?

    Entweder per Strg+S oder in der Menüleiste direkt über dem Editor auf Datei → Speichern.

  • Man kann Fahrzeuge im S7 auch über den Weiteralarmieren-Tab weitealarmieren.

    Ja ist mir bekannt - ändert aber nichts an meiner Forderung dass der Status 7 im Funkfenster erhalten bleibt. Zusätzlich verhält sich weiteralarmieren per Tab anders als weiteralarmieren im Funkfenster. Im Funkfenster verschwindet das Fzg nach dem Weiteralarmieren und daher weiß man beim Pendelverkehr -> es ist schon weiteralarmiert

    Einmal editiert, zuletzt von ZAV ()

  • Keine Angst, das Ausblenden von verschiedenen Status ist dann natürlich voll einstellbar, sodass jede/r selbst wählen kann, welche Status angezeigt werden sollen und welche nicht.


    Kleiner Tipp ZAV : Bei Scripten die Forderungen lieber als Wunsch bezeichnen/ausschmücken. Kommt in aller Regel besser wie eine Forderung ;)

    Wünsche werden ja trotzdem beachtet und auch gern erfüllt :)

  • Kleiner Tipp ZAV : Bei Scripten die Forderungen lieber als Wunsch bezeichnen/ausschmücken. Kommt in aller Regel besser wie eine Forderung ;)

    Wünsche werden ja trotzdem beachtet und auch gern erfüllt :)

    Ja sonst gerne - nur offensichtlich ich habe das Posting falsch verstanden - ich hatte befürchtet/Verstanden dass die Statusanzeige ohne jede Wahlmöglichkeit auf die angesprochenen 2 Stati reduziert wird - dass das Ganze ein Script ist, das ich ja gar nicht installieren muss ist mir irgendwie entgangen. Ein Script mit voller Wahlmöglichkeit ist natürlich toll :-)

  • Ich hab sowas ähnliches bei mir seit ca 3 Jahren drin:

    $('#radio_messages').empty();

    wird alle 30 Sekunden aufgerufen. Hatte damals einen sehr positiven Effekt ;)

    Ich würde mal vermuten, dass komplette Entfernen aus dem DOM bringt noch etwas mehr, als nur das Ausblenden, andereseits sind die Browser aber auch schon extrem optimiert, mag also auch gering sein der Unterschied :/

  • Jan (jxn_30) Es gibt noch zwei Punkte, die ich an den Funksprüchen suboptimal finde und ich auf seit längerem auf einer Todo für ein Script halte. Wären das zwei Ideen, die für dich in dieses Script passen würden?

    1. Informationen über Einsatzausweitungen von RD-Fahrzeugen gehen verloren, sobald diese Abrücken (Patiententransport oder automatische Rückalarmierung). Als Disponent würde ich diese Meldungen gerne selbst quittieren.
    2. "Springen der Einträge": Neue Sprechwünsche werden in der Liste oben eingefügt, Sprechwünsche abrückender RD-Fahrzeuge werden gelöscht - dadurch verändert sich das Bild der Sprechwünsche und ein Klick geht nicht selten auf den falschen Einsatz/Fahrzeug oder ins Leere. Hier wäre es schön, wenn die Sprechwünsche eine statische Liste bleibt, um "Klicksicherheit" zu haben.