Рекомендации по созданию выражений функций
Следующие функции и виджеты поддерживают написание пользовательских выражений JavaScript в мэшапе:
• Функция выражения - рассчитывает значение
• Функция проверки - рассчитывает логическое значение
• Виджеты сетки - оценка вводимых пользователем данных при правке ячеек сетки
Используйте функцию TW.log только для целей разработки
Функцию можно использовать TW.log() для ведения журналов отладки, ошибок, предупреждений и информационных сообщений, которые связаны с выражением в мэшапе. Сообщения журнала отображаются в диалоговом окне журнала мэшапа во время выполнения. Например:
• TW.log.debug('debug')
• TW.log.error('error')
• TW.log.warn('warn')
• TW.log.info('info')
Открытие мэшапов, содержащих большое количество операторов ведения журнала выражений, существенно влияет на производительность мэшапа. Если в ваших мэшапах используется большое количество операторов ведения журнала, рекомендуется не использовать их в реальной производственной среде. В процессе разработки и тестирования мэшапа можно использовать операторы журнала, но их необходимо преобразовать в комментарии или удалить из кода перед развертыванием мэшапа в производственной среде.
Проверка консоли отладки времени выполнения
После создания мэшапа, содержащего выражения, обратитесь к диалоговому окну информация об отладке во время выполнения. Эту возможность можно использовать для отслеживания выполнения мэшапа, что помогает идентифицировать логические проблемы, такие как циклические привязки и бесконечные циклы в конструкции или реализации. Чтобы просмотреть отладочную информацию для мэшапа, щелкните Показать/скрыть информацию об отладке на панели инструментов времени выполнения.
Анализ входных данных JSON
При работе с данными JSON в выражении избегайте использования метода JSON.parse() для анализа и преобразования JSON из строки. Можно получить доступ к объектам JSON в пределах параметров, задаваемых непосредственно базовым типом JSON.
Использование функции TW.setTimout
В предыдущих версиях ThingWorx в выражениях функций не поддерживается setTimeout. В ThingWorx 9.6 или более поздних версий можно одновременно выполнять до 10 выражений, содержащих функцию TW.setTimeout. В каждом выражении можно определить одну функцию setTimeout. Любой код, добавляемый в выражение до или после функции setTimeout, не выполняется. Максимальное значение времени ожидания, которое можно задать для функции, ограничено 10 секундами. Если значение превышает этот предел, автоматически задается значение 10 секунд и в журналах мэшапов во время выполнения отображается сообщение TW.log.warn.
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
|
|
Доступно до десяти веб-конвертеров для выполнения выражений с функцией setTimeout во время выполнения. Дополнительные функции ставятся в очередь, пока конвертер доступен.
|
Использование функций TW.sessionStorage
Пары имя-значение, хранящиеся в объекте window.sessionStorage , доступны только в течение сессии браузера. Могут возникать условия состязания, поскольку защищенные выражения выполняются асинхронно. Например, одно выражение может обновлять свойства хранилища сессии, а другое выполняться до получения обновленных значений. Чтобы сократить число состязаний и обеспечить доступность обновлений хранилища сессий до выполнения другого выражения, необходимо создавать цепочки выражений с помощью события Changed.
|
|
Переменные window.sessionStorage не связаны с Thingworx GlobalSessionVariables.
|