@GamiD said in Не загружается сайт:
@Dodok
Я говорю о том что на 23 версии клоудфар проходился без отпечатков, без хороших прокси, без профилей....
Если учесть что сам сайт не ахти открывается то вот вариант
alt text
Подскажите пожалуйста почему не работает вызов функции ?
В кубике "выполнить код" есть функция
function findPrefixData(){
...
код
...
return результат
}
Далее в скрипте идут вложенные "While" + "Foreach" (кубиками), и во вложенном "Foreach" есть вызов:
var [[FIND_TYPE]] = findPrefixData()
который при запуске выдает ошибку:
Поток завершился с сообщением "ReferenceError: Can't find variable: findPrefixData во время выполнения действия 608256136"
При записи все отрабатывает нормально.
@_User_ said in Не работает вызов функции:
Подскажите пожалуйста почему не работает вызов функции ?
В кубике "выполнить код" есть функция
function findPrefixData(){ ... код ... return результат }Далее в скрипте идут вложенные "While" + "Foreach" (кубиками), и во вложенном "Foreach" есть вызов:
var [[FIND_TYPE]] = findPrefixData()который при запуске выдает ошибку:
Поток завершился с сообщением "ReferenceError: Can't find variable: findPrefixData во время выполнения действия 608256136"При записи все отрабатывает нормально.
findPrefixData = function (){...
@Fox
Спасибо все заработало.
Но породило новые вопросы: почему мой вариант работал до того как пришлось задействовать глобальную переменную ? (с данной функцией она не взаимодействует)
И почему еще одно такое же объявление другой функции продолжает работать до сих пор ? (отличие лишь в том что в ней передается 1 параметр)
@_User_ said in Не работает вызов функции:
@Fox
Спасибо все заработало.
Но породило новые вопросы: почему мой вариант работал до того как пришлось задействовать глобальную переменную ? (с данной функцией она не взаимодействует)
Смотря что вы подразумеваете под названием "глобальная переменная"
И почему еще одно такое же объявление другой функции продолжает работать до сих пор ? (отличие лишь в том что в ней передается 1 параметр)
Скорее всего вы её объявляете в созданной функции BAS
@Fox said in Не работает вызов функции:
Смотря что вы подразумеваете под названием "глобальная переменная"
Имено то что можно объявить кубиком "Установить глобальную переменную" в БАС
@_User_ said in Не работает вызов функции:
(с данной функцией она не взаимодействует)
Я технически не могу засунуть кубик "Установить глобальную переменную" внутрь кубика "выполнить код" где у меня и объявлена данная функция.
Вот меня и озадачило такое поведение: данная функция работать в исходном виде перестала, а вторая аналогичная до сих про продолжает стабильно работать.
Сразу не до конца понял
@Fox said in Не работает вызов функции:
Скорее всего вы её объявляете в созданной функции BAS
ситуация такая: глобальная переменная обявлена в тойже функции BAS, где находится кубик "выполнить код" с объявленной функцией, но я пробовал переносить объявление в другую функцию BAS, объединял её объявление с JS кодом той функции, что продолжает работать (объявлял несколько функций в одном "выполнить код") и прочие комбинации (объявление раньше вызова, позже, вместе в разных функциях, менял местами первый вызов (объявление глобальной переменной) и кубик с кодом JS).
Это ни чего не меняет. При запуске или при сборке в модуль (это делается как модуль) вылетает одна и таже ошибка.
@_User_ said in Не работает вызов функции:
Сразу не до конца понял
@Fox said in Не работает вызов функции:
Скорее всего вы её объявляете в созданной функции BAS
ситуация такая: глобальная переменная обявлена в тойже функции BAS, где находится кубик "выполнить код" с объявленной функцией, но я пробовал переносить объявление в другую функцию BAS, объединял её объявление с JS кодом той функции, что продолжает работать (объявлял несколько функций в одном "выполнить код") и прочие комбинации (объявление раньше вызова, позже, вместе в разных функциях, менял местами первый вызов (объявление глобальной переменной) и кубик с кодом JS).
Это ни чего не меняет. При запуске или при сборке в модуль (это делается как модуль) вылетает одна и таже ошибка.
Ни чего не понял.. Приложите тестовый скрипт
@Fox
Он в стадии "активного редактирования" :D, и то что есть не дописано, но уже прилично по объему, так что из него "нопонятностей" будет только еще больше.
попробую выложить эту кашу поэтапно:
Все функции объявленные на 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 (с которым я кстати начал знакомиться именно из-за этого модуля). Так что все что пришло в голову - уже испробовал.