Just ping them. Ping shows how fast they are by response times, so than
just filter them by your desired speed limit. It is usual technicque.
Как элегантно повесить проверку на все действия сразу?
-
Допустим, есть большой скрипт, во время работы, в абсолютно любом месте может выскочить попап который мне нужно обработать, как это сделать самым классным образом, подскажите у кого есть такой лайфхак?
Кратко - мне нужно повесить функцию которая будет срабатывать после каждого действия.
Хелп.
-
@centerdevs said in Как элегантно повесить проверку на все действия сразу?:
Допустим, есть большой скрипт, во время работы, в абсолютно любом месте может выскочить попап который мне нужно обработать, как это сделать самым классным образом, подскажите у кого есть такой лайфхак?
Кратко - мне нужно повесить функцию которая будет срабатывать после каждого действия.
Хелп.
Если вы обрабатываете это окно в BAS, то и проверять наличие необходимого элемента нужно в BAS. Асинхронно (то есть фоном) этого сделать не получится, придётся добавлять проверку наличия "попап" окна во все возможные места. Проще всего проверку наличия окна и работу с этим окном поместить в функцию и в ваш алгоритм просто добавлять вызов этой функции.
Если логика работы с этим окном будет произведена в js браузера, то проще всего циклом проверять наличие этого элемента на экране, ну или более сложный вариант - следить за мутациями
-
@Fox понимаю, потому ищу лайфхак какой-то, допустим у меня скрипт состоит из 400 действий, это может быть загрузка урл, клик мышью, скролл перемещение и так далее, если мне добавить проверку на 400 действий это добавит ооочень много лишних условий, проверок, меток для возврата. А если бы просто после каждого действия проверял не появился ли этот попап - то было бы просто и эффективно. Без кучи ненужной мусорной логики в коде
-
@centerdevs said in Как элегантно повесить проверку на все действия сразу?:
@Fox понимаю, потому ищу лайфхак какой-то, допустим у меня скрипт состоит из 400 действий, это может быть загрузка урл, клик мышью, скролл перемещение и так далее, если мне добавить проверку на 400 действий это добавит ооочень много лишних условий, проверок, меток для возврата. А если бы просто после каждого действия проверял не появился ли этот попап - то было бы просто и эффективно. Без кучи ненужной мусорной логики в коде
Единственная функция, которая запускается в BAS после каждого действия, это функция _sa(), но она синхронная.
Основная проблема в том, что вы хотите обрабатывать появление этого окна функцией BAS, а большинство действий в BAS - асинхронные (код которых заканчивается на восклицательный знак). Даже действие "вызов функции" является асинхронным. Соответственно поместить асинхронный вызов в синхронную функцию не получится (BAS просто не будет дожидаться завершения выполнения функции).По этому простых решений здесь нет.
-
@Fox понял ) но странно, ведь по сути в бас вшита синхронная работа , когда каждое действие идёт по очереди, я понимаю что под капотом эти действия асинхронны, но раз БАС дожидается завершения одной и переходит к следующей, может есть какой-то вариант впихнуться вот в этот момент 😄
-
@centerdevs said in Как элегантно повесить проверку на все действия сразу?:
@Fox понял ) но странно, ведь по сути в бас вшита синхронная работа , когда каждое действие идёт по очереди, я понимаю что под капотом эти действия асинхронны, но раз БАС дожидается завершения одной и переходит к следующей, может есть какой-то вариант впихнуться вот в этот момент 😄
так.. давайте ещё раз.. прочитайте медленно, внятно и с выражением: "Нет, так сделать не получится. Никак. Совсем. Вообще."
Синхронно или асинхронно, это скорее названия логики выполнения действий BAS (будет ждать интерпретатор завершения действия или пойдёт сразу дальше)
@support said in Подключение Js файлов к общему scope не нарушая зависимости и не ломая сам проект.:
Восклицательный знак в конце асинхронных функций - это небольшое расширение языка призванное избежать callback hell.
Например, такой код
sleep(1000)! log("Done")Будет преобразован в такой
sleep(1000, function(){ log("Done") })Если вызвать post("myurl",{})
То функция вернется мгновенно не дожидаясь окончания запроса.