как избавиться от исполнения скриптов

Стартовая страница Форумы Понять, как работает ПО как избавиться от исполнения скриптов

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Автор
    Записи
  • #44379
    manjey73
    Участник

    Damper — исполнение скрипта видео

    Скрин

    Собственно вижу, что скрипт выполняется постоянно после загрузки страницы.
    Интересует вопрос как сделать так, чтобы скрипт исполнялся только тогда, когда у нас изменилось значение и не выполнялся, когда изменений значений нет.

    з.ы. накидал штук 50 дамперов и цифры счетчика просто приводят в недоумение, учитывая, что значение я поменял всего один раз.

    #44391
    Mikhail
    Модератор

    По умолчанию мнемосхема запрашивает данные по API 1 раз в секунду. Для каждого компонента на мнемосхеме после этого вызывается метод updateData. Если речь об этом, то это нормальная работа.
    Если значение канала не меняется, то скрипт updateComponentDom не вызывается.

    #44392
    manjey73
    Участник

    Значение НЕ МЕНЯЕТСЯ. Изначально мы запускаем схему, где угол равен 0, и это значение не меняется до тех пор, пока мы не зададим угол.
    Я задал угол ОДИН раз, должен выполниться скрипт так же один раз.

    Но скрипты вызываются постоянно, начиная от загрузки страницы.

    как это победить, чтобы скрипт вызывался при загрузке страницы и потом только для тех экземпляров, где значение меняется ?

    #44396
    Mikhail
    Модератор

    На скриншоте 840 раз вызван метод dataUpdated. Вызовы метода domUpdated не зафиксированы на скриншоте. Если метод domUpdated не вызывается при отсутствии изменения значения канала, то мнемосхема работает так, как должна работать.

    #44397
    manjey73
    Участник

    ну да, я забыл, что damper на Разметке сделан. И видимо dataUpdated вызывается аналогично domUpdated — ВСЕГДА.

    слово тут у меня одно — Аминь, пух его праху или как там надо будет по контексту.

    #44398
    manjey73
    Участник

    так в damper же не используется domUpdated, о чем вы опять?

    #44402
    manjey73
    Участник

    Использовался TestExtraComp.mim, просто были накопированы куча дамперов.
    Посмотрел, изменения угла происходит в domUpdated при запуске общего скрипта.
    В скриптах dataUpdated прописан только вывод в лог. В скрипте самого фейсплейта с надписью «in Faceplate» а в скрипте компонента без этой надписи.

    Вот dataUpdated в скрипте самого фейсплейта и долбит без остановки, хотя данные то не меняются.

    #44403
    manjey73
    Участник

    з.ы. не знаю, насколько оригинальный damper у меня сейчас. Но вроде копировался из папки примеров.

    #44404
    manjey73
    Участник

    Скачал оригинал damper снова для проверки.
    Было добавлено в в скрипт фейсплейта

            dataUpdated(args) {
          console.log("Damper, Faceplate, dataUpdated");
        } 

    И в скрипт компонента

            dataUpdated(args) {
          console.log("Damper, Markup, dataUpdated");
        }

    Так вот скрипт фейсплейта dataUpdated долбит в консоль постоянно, хотя значения не меняются.
    При этом вывода в лог «Murkup dataUpdated» после изменения угла даже не появляется

    короче что-то неладное со скриптами, это точно.

    #44418
    manjey73
    Участник

    Михаил, вы можете проверить, с учётом добавления вывода в консоль (последнее сообщение) «методов» или что это для js, почему в самом скрипте фейсплейта идёт постоянный вывод без изменения переменной, а скрипт dataUpdated непосредственно в компоненте не срабатывает вообще?

    Может надо этим пользоваться иначе, чем я представляю? Тогда не плохо бы пример использования со скриптами dataUpdated как в компоненте, так и в фейсплейте.

    #44421
    Mikhail
    Модератор

    Проверить на своей стороне смогу только в сентябре.

    #44424
    manjey73
    Участник

    Хорошо, а накидать какой-то пример, типа damper-а с управлением через dataUpdated без использования domUpdated можете?
    Или уже есть среди выложенных?
    Чтобы было понятнее как работает и было на чем-то вашем скрины делать, если там всё-таки есть ошибка кода?

    #44426
    Mikhail
    Модератор

    управлением через dataUpdated без использования domUpdated можете?

    Так не будет работать. domUpdated нужен для отрисовки компонента. dataUpdated только для логической обработки данных.

    #44427
    manjey73
    Участник

    Ну так логическая обработка тоже приводит к отрисовке потом или на кой тогда этот dataUpdated нужен, если все можно делать в domUpdated?

    Ну тогда ждём, когда проверите, потому что если данные не меняются, то как бы выполнять скрипт нет необходимости.

    Я вообще обычно ставлю 500-700мс на обновление в web.

    Например почему не сделали открытие web сокета, чтобы вообще вот не просить каждую секунду пачку переменных? Что-то поменялось, сразу узнали и выполнили.

    #44428
    manjey73
    Участник

    Ну и опять в догонку напишу, отключите каким-то образом обновление Разметки перед выполнением domUpdated. Возможностей станет куда больше, или будет гибче.
    Перестраивать svg каждую секунду тоже не дело…

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Для ответа в этой теме необходимо авторизоваться.