In dieser Lektion lernen Sie Story-Skripte kennen, um die Auswirkungen eines Skripts auf die Story-Performance besser zu verstehen, und drei Szenarios, in denen die Story-Skripte optimiert werden können, um die Scripting-Performance zu verbessern.
Zunächst betrachten wir eine Story, die nicht gut funktioniert und eine Reihe von Interaktionen zwischen den Threads Main und SandboxWorker erfordert, was die Story-Performance verlangsamt. Anschließend zeigen wir Ihnen, wie Sie Skripte optimieren, die Folgendes enthalten:
- Mehrfachverwendung der Methoden getValue und setValue.
- Mehrfachverwendung der getResultSet Methode.
- Ungefilterte Anwendung der getResultSet Methode.
Zusammenfassung
Im Video untersuchen wir drei häufige Probleme mit der Skript-Performance und Best Practices zur Optimierung des Skripts.
- Mehrfachverwendung der Methoden getValue und setValue.
In unserem Szenario wurde das Textfeld falsch verwendet, um Zwischenzustände wie den typischen Anwendungsfall einer Variablen zu speichern, während das Skript noch verarbeitet wurde.
Am Anfang des Skripts können Sie eine leere Textvariable deklarieren und innerhalb der Schleife die erforderlichen Ergebnisse in die Textvariable verketten. Als letzter Schritt des Skripts wird der Text auf das Textfeld angewendet.
Damit benötigen Sie nur die eine Interaktion zwischen den beiden Threads, die den endgültigen Text im Textfeld anwenden soll.
- Mehrfachverwendung der getResultSet-Methode.
In unserem Szenario wird die Methode getResultSet sowohl im Kopf als auch viermal innerhalb der Schleife aufgerufen.
Anstatt den Haupt-Thread jedes Mal aufzufordern, die Ergebnismenge zu übergeben, empfiehlt es sich, nur einmal danach zu fragen und sie in einer lokalen Variable zu speichern. Diese lokale Variable kann so oft wie nötig ohne zusätzliche Interaktion zwischen dem SandboxWorker und dem Main Thread verwendet werden.
- Ungefilterte Verwendung der Methode getResultSet.
In unserem Szenario verwendet das Skript das API getResultSet, ohne einen Filter wie Offset, Limit oder Auswahl anzugeben. Ohne Angabe eines Filters enthält das zurückgegebene Array dieser API ein Element für jede Zelle der Ergebnismenge.
Verwenden Sie das getResultSet optionalen Argument Selections, mit dem das Rückgabe-Array eingeschränkt werden kann.
Scripting im Ereignis onResultsetChanged
Es gibt ein letztes wichtiges Thema zur Skriptoptimierung, das Story-Entwickler beim Scripting im Ereignis onResultsetChanged beachten müssen.
Unabhängig davon, was Sie im Ereignisskript onResultsetChanged programmieren, stellen Sie sicher, dass Sie danach nicht dieselbe Ergebnismenge ändern. Dies löst ein weiteres onResultsetChanged Ereignis aus, und es wird eine Endlosschleife erzeugt. Die einzige Möglichkeit, die Schleife abzubrechen, besteht darin, das Browserfenster zu schließen.