Autor Thema: Eigene Script-Libs - nutzen oder lieber nicht?  (Gelesen 7612 mal)

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Eigene Script-Libs - nutzen oder lieber nicht?
« am: 30.07.12 - 15:00:27 »
Hallo zusammen!

Ich hab irgendwo gelesen, dass man die Script-Libs lieber nicht nutzen sollte, da dabei Masken und Ansichten langsam werden sollen.

Ist das wirklich so schlimm? Oder kann man die Libs in begrenztem Umfang verwenden?

Ein paar Sachen würd ich nämlich schon ganz gern zentral organisieren. In jedem Button die selbe Funktion zu definieren, kann ja nicht im Sinne des Erfinders sein...

Zur Zeit hätte ich ca. 50 eigene kleine Funktionen. Die sind alle in einer LIB. Aber in dem Durcheinander find ich irgendwann nichts wieder.

Grüße
Basti

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #1 am: 30.07.12 - 15:03:08 »
Ich hab irgendwo gelesen, dass man die Script-Libs lieber nicht nutzen sollte, da dabei Masken und Ansichten langsam werden sollen.

Keine Ahnung, wo Du das gelesen hast: Entweder passte der Kontext nicht, oder es wurde schlicht Quatsch geschrieben. Natürlich kann und sollte man ScriptLibraries verwenden.  ;)

Bernhard

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #2 am: 30.07.12 - 15:05:09 »
Ich nutze sehr intensiv Script-Bibliotheken und halte es für ein Märchen, dass Masken und Ansichten dadurch langsamer werden.

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #3 am: 30.07.12 - 15:09:09 »
Prima! Das klingt ermutigend :)

BTW: kann man eigentlich die Anordnung der Funktionen in einer Lib alpabethisch sortieren?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #4 am: 30.07.12 - 15:20:23 »
In 8.5 mit dem neuen Scripteditor werden die automatisch alphabetisch sortiert, ansonsten erfolgt die Ablage der Subs und Functions chronoligisch

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #5 am: 30.07.12 - 16:07:59 »
Das mit den Script libraries die das Ganze langsam machen ist vermutlich ein Missverständnis, das aus einem echten Problem zumindest der Clients bis Version 7 her rührt. Wenn man nämlich Teilmasken verwendet hat um Script Libraries einzubinden, dann gab (unter Umständen gibt es das auch in den 8er Versionen immer noch) es da ein Problem, das mit den Alias Namen der Teilmasken zu tun hatte.
Die Einbindung solcher Masken führte nämlich dazu, das mit einer höheren Anzahl von eingebundenen Teilmasken die Öffnungszeit der Form an und für sich in den Keller ging.
Die Lösungsversuche für das Thema sind Legion und reichen von einfach ein 1=1 im Initialize der Maske einfügen bis hin zu "Füge eine Dummy Script Library in die Teilmaske ein".

Das Problem war hier aber nicht der Code in der Teilmaske sondern schlicht und einfach der
Aliasname der Teilmaske.
Dieser wurde nämlich verwendet um die Teilmaske an die Maske zu koppeln und wenn man einen Alias Namen verwendet hat und diesen so schrieb "SFRMMaske | SFRMForm" dann verwendet der Notes Client zum Einbinden der Subform unglücklicherweise " SFRMForm".  Und das jeweils immer zu suchen dauert dann ein wenig länger.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #6 am: 31.07.12 - 08:50:30 »
Prima, vielen Dank für die Infos! :)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #7 am: 31.07.12 - 09:05:42 »
Du hast nicht ganz unrecht, je mehr Libs du verwendest und je größer die "use"-Tiefe ist (Lib A used Lib B used Lib C usw...), um so langsamer wird es. Insbesondere wenn die Teilmasken die gleichen Libraries nochmal usen. Dies tritt aber wirklich erst bei komplexen Libs auf, wo > 10 Libraries beteiligt sind. Behelfen kann man sich dann mit dynamic class loading:
http://www.redbooks.ibm.com/redbooks.nsf/0/bb2af5af66e01de9852567d3006a876a?OpenDocument

Zitat
Zur Zeit hätte ich ca. 50 eigene kleine Funktionen. Die sind alle in einer LIB. Aber in dem Durcheinander find ich irgendwann nichts wieder.

Da sehe ich kein Problem :)

Gruß
Roland


Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Glombi

  • Gast
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #8 am: 03.08.12 - 09:47:55 »
Das mit den Script libraries die das Ganze langsam machen ist vermutlich ein Missverständnis, das aus einem echten Problem zumindest der Clients bis Version 7 her rührt. Wenn man nämlich Teilmasken verwendet hat um Script Libraries einzubinden, dann gab (unter Umständen gibt es das auch in den 8er Versionen immer noch) es da ein Problem, das mit den Alias Namen der Teilmasken zu tun hatte.
Die Einbindung solcher Masken führte nämlich dazu, das mit einer höheren Anzahl von eingebundenen Teilmasken die Öffnungszeit der Form an und für sich in den Keller ging.
Die Lösungsversuche für das Thema sind Legion und reichen von einfach ein 1=1 im Initialize der Maske einfügen bis hin zu "Füge eine Dummy Script Library in die Teilmaske ein".

Das Problem war hier aber nicht der Code in der Teilmaske sondern schlicht und einfach der
Aliasname der Teilmaske.
Dieser wurde nämlich verwendet um die Teilmaske an die Maske zu koppeln und wenn man einen Alias Namen verwendet hat und diesen so schrieb "SFRMMaske | SFRMForm" dann verwendet der Notes Client zum Einbinden der Subform unglücklicherweise " SFRMForm".  Und das jeweils immer zu suchen dauert dann ein wenig länger.
In einer meiner Anwendung war es auch grottenlangsam, wenn ich viele Teilmasken eingebunden hatte und diese hatten keinen Alias. Ein einfachtes 1=1 (oder dergleichen) im Code hat denn wahre Wunder bewirkt.

Andreas

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #9 am: 03.08.12 - 17:46:58 »
Zitat
Das mit den Script libraries die das Ganze langsam machen ist vermutlich ein Missverständnis, das aus einem echten Problem zumindest der Clients bis Version 7 her rührt. Wenn man nämlich Teilmasken verwendet hat um Script Libraries einzubinden, dann gab (unter Umständen gibt es das auch in den 8er Versionen immer noch) es da ein Problem, das mit den Alias Namen der Teilmasken zu tun hatte.

Hierzu hab ich noch eine Anmerkung: Man sollte Teilmasken nicht in der Designer-Ansicht umbenennen sondern öffnen und dann umbenennen.
Beim Umbenenen in der Ansicht wird scheinbar nur das $TITLE-Feld geändert. Dies sieht man deutlich im Objektbaum. Da steht dann
Code
(Globals)AlterName
NeuerName (Subform)
...
+ QueryOpen
+ QuerySave
...
[code]
Das hat dann merkwürdige Effekte, welche von "langsam" bis "unerkkärliche Fehlermeldungen" reichen.

Gruß
Roland
[/code]
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #10 am: 10.08.12 - 10:41:55 »
... ich versuche Inline-Code - also Code im Button - nach Möglichkeit sogar zu meiden, da ich Funktionalität und Design trennen möchte. Nur so lassen sich dann auch Code-Redundanzen vermeiden - insofern man seinen Code modular aufbaut.

Zeit-Verzögerungen können im Load vorkommen, wenn die Lib's zu groß sind. Das angesprochene Nachladen wäre dann die angesagte Technologie.

Ansonsten kann man die Kette der geladenen Lib's insofern optimieren, dass man die Lib's sinnvoll miteinander verkettet => Frontend => Backend => DB-Spezifisches => Globale Funktionen => Konstanten - Fehlerhandling

Toni
Grüßle Toni :)

Offline Basti*

  • Junior Mitglied
  • **
  • Beiträge: 87
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #11 am: 14.08.12 - 09:32:38 »
Oh, vielen Dank für die vielen Hinweise! Große Klasse :)

Gleich noch eine Frage:
[...]
In einer meiner Anwendung war es auch grottenlangsam, wenn ich viele Teilmasken eingebunden hatte und diese hatten keinen Alias. Ein einfachtes 1=1 (oder dergleichen) im Code hat denn wahre Wunder bewirkt.

Ein Alias kenn ich - vom Prinzip. Aber wie wird der in Notes definiert? Und wann braucht man Aliase? Und was hat es mit dem 1=1 auf sich? In welches Codefragment hau ich das rein? Ich vermute mal in der Teilmaske selbst. Und dann? Bei Sub Initialize?

Grüße
Basti

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Eigene Script-Libs - nutzen oder lieber nicht?
« Antwort #12 am: 14.08.12 - 09:41:11 »
Ja, ins Sub Initialize. M.E. reicht auch ein Kommentar, wichtig ist, dass ein Scriptevent geändert wird, sodass beim Speichern der Teilmaske das Script übersetzt wird. Ohne übersetztes Script erfolgt die Übersetzung zur Laufzeit, was auch noch andere Effekte haben kann (wenn z.B. in der Maske und der Teilmaske gleiche Variablen global definiert sind, stoßen die zusammen, obwohl sie eigentlich im Gestaltungselement gekapselt sein müssten).

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz