Движок правил wb-rules 1.7: различия между версиями
(Отметить эту версию для перевода) |
Fizikdaos (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
= Сценарии = <!--T:2--> | = Сценарии = <!--T:2--> | ||
== Изоляция сценариев == <!--T:3--> | == Изоляция сценариев == <!--T:3--> | ||
Строка 12: | Строка 11: | ||
Начиная с версии wb-rules 1.7, локальные переменные и функции, обьявленные в файле сценария не видны в других сценариях. | Начиная с версии wb-rules 1.7, локальные переменные и функции, обьявленные в файле сценария не видны в других сценариях. | ||
Таким образом, каждый сценарий может определять свои функции и переменные без риска изменить поведение других сценариев. | Таким образом, каждый сценарий может определять свои функции и переменные без риска изменить поведение других сценариев. | ||
=== Пример === <!--T:5--> | === Пример === <!--T:5--> | ||
Строка 53: | Строка 51: | ||
}, 5000); | }, 5000); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:13--> | <!--T:13--> | ||
Строка 66: | Строка 63: | ||
<!--T:14--> | <!--T:14--> | ||
</pre> | </pre> | ||
<!--T:15--> | <!--T:15--> | ||
Строка 79: | Строка 75: | ||
myFuncOne /etc/wb-rules/rules1.js:6 preventsyield | myFuncOne /etc/wb-rules/rules1.js:6 preventsyield | ||
</pre> | </pre> | ||
=== Примечание === <!--T:16--> | === Примечание === <!--T:16--> | ||
Строка 97: | Строка 90: | ||
Начиная с версии 1.7, в подобной конструкции обычно нет необходимости. Тем не менее, старые сценарии, | Начиная с версии 1.7, в подобной конструкции обычно нет необходимости. Тем не менее, старые сценарии, | ||
использующие эту конструкцию, продолжат работу без изменений в поведении. | использующие эту конструкцию, продолжат работу без изменений в поведении. | ||
=== Обходные пути === <!--T:19--> | === Обходные пути === <!--T:19--> | ||
Строка 104: | Строка 96: | ||
Если в вашей системе использовалось общее глобальное пространство для хранения общих данных и функций, | Если в вашей системе использовалось общее глобальное пространство для хранения общих данных и функций, | ||
есть несколько способов реализации такого поведения: | есть несколько способов реализации такого поведения: | ||
==== Постоянное хранилище ==== <!--T:21--> | ==== Постоянное хранилище ==== <!--T:21--> | ||
Строка 125: | Строка 116: | ||
ps.myvar = "value"; // это значение доступно для всех пользователей хранилища с именем "my-global-storage" | ps.myvar = "value"; // это значение доступно для всех пользователей хранилища с именем "my-global-storage" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Прототип глобального объекта ==== <!--T:27--> | ==== Прототип глобального объекта ==== <!--T:27--> | ||
Строка 165: | Строка 155: | ||
<!--T:36--> | <!--T:36--> | ||
Таким образом, первый способ обращения будет работать только в том случае, если myVar не определена в верхних областях видимости. | Таким образом, первый способ обращения будет работать только в том случае, если myVar не определена в верхних областях видимости. | ||
== Постоянное хранилище данных == <!--T:37--> | == Постоянное хранилище данных == <!--T:37--> | ||
Строка 185: | Строка 173: | ||
<!--T:41--> | <!--T:41--> | ||
Поддерживаются только глобальные хранилища, т.е. видимые по одному и тому же имени из всех файлов сценариев. | Поддерживаются только глобальные хранилища, т.е. видимые по одному и тому же имени из всех файлов сценариев. | ||
== Виртуальные устройства == <!--T:42--> | == Виртуальные устройства == <!--T:42--> |