Hallo Martin,
gleich vorneweg: InDesign ist von Natur aus langsam, weil überladen. Und etwas
Vergleichbares zum XPress-'do script'-Turbo gibt es nicht.
Wieviele Stilvorlagen hat Dein Dokument? Deren Namen werden ja vom Script in eine
Liste gesetzt. Und der Zugriff auf Listenelemente kann mit AppleScript beschleunigt
werden, wenn man beim Aufruf das Wort 'my' vor den Variablennamen setzt:
set name of item myCounter of my myStyles to my convertName(name of item myCounter of my myStyles, myAltSprach, myNeuSprach)
Dabei wird einem bewusst, wie unnötig das generelle 'my'-Präfix ist. Du hast dies auch
bemerkt und es beim Handlernamen schon mal weggelassen. ;-)
Aber mit dem 'my'-Trick dürfte die Ausführungszeit nur geringfügig verringert werden,
weil die Liste zu kurz ist (bei 30 Namen messe ich einen Unterschied von 0.3 Sekunden).
Du hast darauf hingewiesen, dass die Parameter bei jedem Aufruf an den Handler
übergeben werden. Wenn man sie also als 'global' (oder als 'property') definieren würde,
dann wären sie dem Handler bekannt, ohne dass sie über den Aufruf durchgereicht werden
müssen. Diese Vereinfachung sollte doch einen spürbaren Unterschied ergeben. Doch Zeit-
stoppungen zeigen, dass dem nicht so ist.
Was könnte man noch tun? Die besten Werte erhielt ich, wenn die Absatzformat-Palette
eingeklappt und InDesign nicht das aktive Programm ist (und immer mit my myStyles).
– InDesign aktiv, Palette ausgefahren = 12.0 Sekunden
– InDesign nicht aktiv, Palette ausgefahren = 8.3 Sekunden
– InDesign aktiv, Palette eingeklappt = 2.4 Sekunden
– InDesign nicht aktiv, Palette eingeklappt = 1.3 Sekunden
Das sind die Resultate (mit 30 Namen), wenn das Script ab Scripteditor gestartet wird.
Eine weitere Beschleunigung kann erzielt werden, wenn das Script ab InDesign-Script-
palette gestartet wird. Und dabei ist es besser, wenn InDesign im Vordergrund bleibt.
– InDesign aktiv, Palette eingeklappt = 0.342 Sekunden
Das ist doch schon recht flink. Oder nicht? :-)
Gruss, Hans
als Antwort auf: [#419469]