Mashup Builder > Funktionen > Optimale Vorgehensweisen für das Erstellen von Funktionsausdrücken
Optimale Vorgehensweisen für das Erstellen von Funktionsausdrücken
Die folgenden Funktionen und Widgets unterstützen das Schreiben von benutzerdefinierten JavaScript-Ausdrücken in einem Mashup:
Ausdrucksfunktion – ergibt einen Wert
Validatorfunktion – ergibt einen booleschen Wert
Raster-Widgets – werten Benutzereingaben beim Bearbeiten von Rasterzellen aus
Verwenden Sie die TW.log-Funktion nur für Entwicklungszwecke.
Sie können die Funktion TW.log() verwenden, um Debug-, Fehler-, Warnungs- und Informationsmeldungen zu protokollieren, die sich auf einen Ausdruck in einem Mashup beziehen. Protokollmeldungen werden zur Laufzeit im Dialogfenster mit dem Mashup-Protokoll angezeigt. Beispiel:
TW.log.debug('debug')
TW.log.error('error')
TW.log.warn('warn')
TW.log.info('info')
Das Öffnen von Mashups, die eine große Anzahl von Ausdrucksprotokollierungsanweisungen enthalten, wirkt sich erheblich auf die Mashup-Leistung aus. Wenn Sie eine große Anzahl von Protokollanweisungen in Ihren Mashups verwenden, sollten Sie diese nicht in einer Live-Produktionsumgebung verwenden. Sie können Protokollanweisungen verwenden, während Sie ein Mashup entwickeln und testen. Sie sollten sie jedoch in einen Kommentar konvertieren oder aus dem Code entfernen, bevor Sie das Mashup in einer Produktionsumgebung bereitstellen.
Laufzeit-Debug-Konsole prüfen
Nachdem Sie ein Mashup entworfen haben, das Ausdrücke enthält, prüfen Sie das Dialogfenster mit Debug-Informationen zur Laufzeit. Sie können diese Funktionalität verwenden, um die Ausführung des Mashups zu verfolgen. Dies hilft Ihnen beim Identifizieren von Logikproblemen (wie kreisförmige Bindungen und unendliche Schleifen in Ihrem Entwurf oder Ihrer Implementierung). Klicken Sie in der Laufzeit-Symbolleiste auf Debug-Informationen anzeigen/ausblenden, um Debug-Informationen für ein Mashup anzuzeigen.
Syntax von JSON-Eingaben analysieren
Wenn Sie in einem Ausdruck mit JSON-Daten arbeiten, vermeiden Sie es, die Methode JSON.parse() zum Analysieren und Konvertieren von JSON-Objekten aus einer Zeichenfolge zu verwenden. Sie können auf JSON-Objekte innerhalb von Parametern, die auf einen JSON-Basistyp festgelegt sind, direkt zugreifen.
Funktion TW.setTimout verwenden
In vorherigen Versionen von ThingWorx wird setTimeout in Funktionsausdrücken nicht unterstützt. In ThingWorx 9.6 oder höher können Sie bis zu 10 Ausdrücke gleichzeitig ausführen, die eine Funktion TW.setTimeout enthalten. Sie können in jeder Ausdrucksfunktion eine einzelne Funktion setTimeout definieren. Code, der vor oder nach der Funktion setTimeout im Ausdruck hinzugefügt wird, wird nicht ausgeführt. Der maximale Timeout-Wert, den Sie für eine Funktion festlegen können, ist auf 10 Sekunden begrenzt. Wenn der definierte Wert diesen Grenzwert überschreitet, wird der Funktionswert automatisch auf 10 Sekunden festgelegt, und zur Laufzeit wird in den Mashup-Protokollen eine Meldung TW.log.warn angezeigt.
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
* 
Bis zu zehn Web-Worker sind zur Ausführung von Ausdrücken mit einer Funktion setTimeout zur Laufzeit verfügbar. Über diese Zahl hinausgehende Ausdrücke werden in die Warteschlange gestellt, bis ein Worker verfügbar ist.
Funktionen TW.sessionStorage verwenden
Die im Objekt window.sessionStorage gespeicherten Namen- und Wert-Paare sind nur für die Dauer der Browser-Sitzung verfügbar. Möglicherweise können Race-Bedingungen auftreten, da sichere Ausdrücke asynchron ausgeführt werden. Beispielsweise kann ein Ausdruck die Speichereigenschaften der Sitzung aktualisieren, und ein anderer kann ausgeführt werden, bevor die aktualisierten Werte abgerufen werden. Wenn Sie das Auftreten von Race-Bedingungen reduzieren und sicherstellen möchten, dass Sitzungsspeicheraktualisierungen verfügbar sind, wenn das Ausführen eines anderen Ausdrucks gestartet wird, sollten Sie die Ausdrücke mithilfe eines Ereignisses Changed verketten.
* 
window.sessionStorage-Variablen sind nicht verbunden mit ThingWorx GlobalSessionVariables.
War dies hilfreich?