@Mimino ни один сервис не решает ее нормально. Параметр минимального скоре это ерунда. Проверка скоре на каком нибудь сайте тоже может сильно отличаеться от того какой скоре будет на вашем сайте в действительности. Лучше всего немного походить по ссылкам внутри вашего сайта и иметь хорошие отпечатки и прокси.
Не работает вызов функции
-
@_User_ said in Не работает вызов функции:
Сразу не до конца понял
@Fox said in Не работает вызов функции:
Скорее всего вы её объявляете в созданной функции BAS
ситуация такая: глобальная переменная обявлена в тойже функции BAS, где находится кубик "выполнить код" с объявленной функцией, но я пробовал переносить объявление в другую функцию BAS, объединял её объявление с JS кодом той функции, что продолжает работать (объявлял несколько функций в одном "выполнить код") и прочие комбинации (объявление раньше вызова, позже, вместе в разных функциях, менял местами первый вызов (объявление глобальной переменной) и кубик с кодом JS).
Это ни чего не меняет. При запуске или при сборке в модуль (это делается как модуль) вылетает одна и таже ошибка.Ни чего не понял.. Приложите тестовый скрипт
-
@Fox
Он в стадии "активного редактирования" :D, и то что есть не дописано, но уже прилично по объему, так что из него "нопонятностей" будет только еще больше.
попробую выложить эту кашу поэтапно:- Пишу модуль с 3мя функциями - 1 рабочая функция, 2 рабочая функция (похожая на первую, но со своей спецификой и вводными параметрами), 3 функция настройки (содержит общие для первых двух данные и настройки) (будет 3 кубика в интерфейсе БАС)
- Поскольку 1 и 2 функции содержат часть одинаковых данных и все их данные обрабатываются по одному алгоритму, то эти общие куски собрал в функции на JS (код на МНОГО короче сам по себе, а в БАС вообще оформляется как несколько кубиков с функциями внутри)
- На этапе написания все шло норм, а вот при сборке в модуль переменные (их чесно дохрена) любой из 3х функции (будущих кубиков) стали недоступны в других функциях - пришлось ввести глобальную переменную (передает объект состоящий из этих переменных) для обмена данными.
- При добавлении этой глобальной переменной, одна из JS функций перестала вызываться в том виде как была объявлена изначально.
Все функции объявленные на JS, вызываются также кодом JS (это не менялось изначально).
Переменные для передачи собираются в объект который передается в глобальной переменной (при получении обратный процесс).
Код функции которая перестала работать пытался перемещать в другие функции (из тех 3х рабочих), переносил в кубики "выполнить код" к тем что работают - безрезультатно. В таком виде перестала работать только эта функция.P.S. Все переменные передаются верно - отслеживал добавлением контрольных точек с выводом в лог.
-
В общем то пока Ваш вариант работает, эта проблема не сильно подпирает (хотя вопрос пока не решенный).
Но если можно в догонку еще один более важный сейчас вопрос.
Можно ли вообще между вызовами отделных частей модуля (настройка и рабочие функции) сохранить результаты их работы в глобальной переменной ?
А то чето не оч. получается и не понятно толи модуль между вызовами выгружается и сохранить не получится, толи у меня опять косяк какой всплыл или просто что то еще для этого надо допилить ? -
@_User_ said in Не работает вызов функции:
Можно ли вообще между вызовами отделных частей модуля (настройка и рабочие функции) сохранить результаты их работы в глобальной переменной ?
Зачем именно в глобальной? Глобальная переменная BAS видна всем потокам, то есть ваше действие из разных потоков будет перезаписывать данные в глобальной переменной. Храните данные в локальной переменной
А то чето не оч. получается и не понятно толи модуль между вызовами выгружается и сохранить не получится, толи у меня опять косяк какой всплыл или просто что то еще для этого надо допилить ?
Основная проблема в том, что вы используете одинаковые слова для обозначения разных элементов. Создайте тестовый скрипт для демонстрации проблемы - так будет помочь проще и быстрее
-
@Fox said in Не работает вызов функции:
Зачем именно в глобальной? Глобальная переменная BAS видна всем потокам, то есть ваше действие из разных потоков будет перезаписывать данные в глобальной переменной. Храните данные в локальной переменной
Это модуль, и его глобальные переменные останутся при нем, на сколько я понимаю (они не появляются в другом проекте когда я вставляю туда этот скомпилированный кубик)
Глобальные переменные - для обмена данными между частями внутри этого модуля (локальные переменные работают только в режиме записи)В конечном итоге это должен быть модуль ожидания.
В общей функции - делаются настройки поведения курсора при ожидании, тип поведения, порог совпадения для base64 и несколько сторок данных (не буду вдаваться в подробности чтобы не путать). Вот эти данные и должны храниться между вызовами и быть доступны везде в пределах модуля.
2 другие функции - это функции ожидания (одна простое ожидание со своими примочками, вторая ожидание с повтором действия (клик -> ждем реакции, нет -> повтор клика)). Эти 2 функции используют одинаковые данные, хранимые в одном и томже массиве (но каждая свои - входные параметры "кубика"), которые обрабатываются одними и теми же функциями и здесь глобальная переменная нужна для передачи этих данных на обработку.В общем вначале задали общие настроки и они хранятся все время работы (уже того скрипта куда вставим этот модуль)(или до повторного задания).
Вызываем простое ожидание, оно набивает рабочий массив своими данными + общие настройки и отрабатывает как прописано.
Если вызываем клик с ожиданием - оно набивает тотже рабочий массив своими данными + общие настройки и отрабатывает как ему предписано (И использует теже функции обработки, что и простое ожидание).Написать тестовый скрипт для демонстрации это сейчас то же чтои дописать не работающий :D
Закончу (надеюсь) - выложу полность. Думаю будет полезной штукой (у меня должен сократить объем кода обвязки наверно на четверть) -
Я уже со счета сбился сколько раз я все это переписывал (больше 30 точно)
И просто хотел сразу узнать будет ли в глобальной переменной модуля храниться его общие настройки (для него же) между вызовами или все полность выгружается как только кубик отработал (НУ очень не хочется опять вхолостую столько кода лопатить и не факт что без ошибок которые потом снова хрен знает сколько вылавливать) -
@Oyasumi-Punpun
Все что я узнал о модулях я добыл именно таким способом + гугл который постоянно посылает на этот форум и сайты по JS (с которым я кстати начал знакомиться именно из-за этого модуля). Так что все что пришло в голову - уже испробовал. -
@_User_ said in Не работает вызов функции:
@Oyasumi-Punpun
Все что я узнал о модулях я добыл именно таким способом + гугл который постоянно посылает на этот форум и сайты по JS (с которым я кстати начал знакомиться именно из-за этого модуля). Так что все что пришло в голову - уже испробовал.