Стартовая страница › Форумы › Понять, как работает ПО › как избавиться от исполнения скриптов
- В этой теме 16 ответов, 2 участника, последнее обновление 1 день, 15 часов назад сделано
Mikhail.
-
АвторЗаписи
-
30.07.2026 в 16:52 #44379
manjey73УчастникDamper — исполнение скрипта видео
Собственно вижу, что скрипт выполняется постоянно после загрузки страницы.
Интересует вопрос как сделать так, чтобы скрипт исполнялся только тогда, когда у нас изменилось значение и не выполнялся, когда изменений значений нет.з.ы. накидал штук 50 дамперов и цифры счетчика просто приводят в недоумение, учитывая, что значение я поменял всего один раз.
31.07.2026 в 16:52 #44391
MikhailМодераторПо умолчанию мнемосхема запрашивает данные по API 1 раз в секунду. Для каждого компонента на мнемосхеме после этого вызывается метод updateData. Если речь об этом, то это нормальная работа.
Если значение канала не меняется, то скрипт updateComponentDom не вызывается.31.07.2026 в 18:22 #44392
manjey73УчастникЗначение НЕ МЕНЯЕТСЯ. Изначально мы запускаем схему, где угол равен 0, и это значение не меняется до тех пор, пока мы не зададим угол.
Я задал угол ОДИН раз, должен выполниться скрипт так же один раз.Но скрипты вызываются постоянно, начиная от загрузки страницы.
как это победить, чтобы скрипт вызывался при загрузке страницы и потом только для тех экземпляров, где значение меняется ?
03.08.2026 в 15:33 #44396
MikhailМодераторНа скриншоте 840 раз вызван метод dataUpdated. Вызовы метода domUpdated не зафиксированы на скриншоте. Если метод domUpdated не вызывается при отсутствии изменения значения канала, то мнемосхема работает так, как должна работать.
03.08.2026 в 15:36 #44397
manjey73Участникну да, я забыл, что damper на Разметке сделан. И видимо dataUpdated вызывается аналогично domUpdated — ВСЕГДА.
слово тут у меня одно — Аминь, пух его праху или как там надо будет по контексту.
03.08.2026 в 15:37 #44398
manjey73Участниктак в damper же не используется domUpdated, о чем вы опять?
04.08.2026 в 08:51 #44402
manjey73УчастникИспользовался TestExtraComp.mim, просто были накопированы куча дамперов.
Посмотрел, изменения угла происходит в domUpdated при запуске общего скрипта.
В скриптах dataUpdated прописан только вывод в лог. В скрипте самого фейсплейта с надписью «in Faceplate» а в скрипте компонента без этой надписи.Вот dataUpdated в скрипте самого фейсплейта и долбит без остановки, хотя данные то не меняются.
04.08.2026 в 08:52 #44403
manjey73Участникз.ы. не знаю, насколько оригинальный damper у меня сейчас. Но вроде копировался из папки примеров.
04.08.2026 в 09:11 #44404
manjey73УчастникСкачал оригинал damper снова для проверки.
Было добавлено в в скрипт фейсплейтаdataUpdated(args) { console.log("Damper, Faceplate, dataUpdated"); }И в скрипт компонента
dataUpdated(args) { console.log("Damper, Markup, dataUpdated"); }Так вот скрипт фейсплейта dataUpdated долбит в консоль постоянно, хотя значения не меняются.
При этом вывода в лог «Murkup dataUpdated» после изменения угла даже не появляетсякороче что-то неладное со скриптами, это точно.
06.08.2026 в 19:44 #44418
manjey73УчастникМихаил, вы можете проверить, с учётом добавления вывода в консоль (последнее сообщение) «методов» или что это для js, почему в самом скрипте фейсплейта идёт постоянный вывод без изменения переменной, а скрипт dataUpdated непосредственно в компоненте не срабатывает вообще?
Может надо этим пользоваться иначе, чем я представляю? Тогда не плохо бы пример использования со скриптами dataUpdated как в компоненте, так и в фейсплейте.
07.08.2026 в 14:25 #44421
MikhailМодераторПроверить на своей стороне смогу только в сентябре.
08.08.2026 в 09:36 #44424
manjey73УчастникХорошо, а накидать какой-то пример, типа damper-а с управлением через dataUpdated без использования domUpdated можете?
Или уже есть среди выложенных?
Чтобы было понятнее как работает и было на чем-то вашем скрины делать, если там всё-таки есть ошибка кода?08.08.2026 в 10:47 #44426
MikhailМодераторуправлением через dataUpdated без использования domUpdated можете?
Так не будет работать. domUpdated нужен для отрисовки компонента. dataUpdated только для логической обработки данных.
08.08.2026 в 13:32 #44427
manjey73УчастникНу так логическая обработка тоже приводит к отрисовке потом или на кой тогда этот dataUpdated нужен, если все можно делать в domUpdated?
Ну тогда ждём, когда проверите, потому что если данные не меняются, то как бы выполнять скрипт нет необходимости.
Я вообще обычно ставлю 500-700мс на обновление в web.
Например почему не сделали открытие web сокета, чтобы вообще вот не просить каждую секунду пачку переменных? Что-то поменялось, сразу узнали и выполнили.
08.08.2026 в 13:34 #44428
manjey73УчастникНу и опять в догонку напишу, отключите каким-то образом обновление Разметки перед выполнением domUpdated. Возможностей станет куда больше, или будет гибче.
Перестраивать svg каждую секунду тоже не дело… -
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.