@Mango said in Не работает редактор скрипта в режиме записи BAS:
Использую BAS версии 25.0.0. Пожалуйста помогите решить данную проблему, переписывать заного весь проект вообще не вариант!
Обновите BAS до актуальной версии 25.1.2
Здравствуйте.
Есть проблемы со сном(меньше секунды), почитал форум, судя по всему, у многих начинающих пользователей и это почему-то замалчивается!!!!
Продукт для нубов вроде как позиционируется, а базовый функционал по поводу мили пауз не раелизован.
почему спать 1 млс = 1 сек на самом деле? https://community.bablosoft.com/topic/12782/почему-спать-1-млс-1-сек-на-самом-деле
Спать в цикле срабатывает по-своему:
Если добавить 1 раз 100мс может накинуть 300мс, если добавить 1 раз 300мс может накинуть 500мс, если накинуть больше 500мс идет от секунды.
И это речь про первый заход, если поставить 2 раза и более (а в цикле обычно так и происходит), то будет минимум секунда.
Сон живет своей жизнью....
Причем спать, иногда криво работает и когда установлен более секунды (всегда удивлялся почему при разных скриптах получается примерно одинаковое время в районе 2х секунд).
Автор в обучающих роликах призывает ставить задержки в циклы, что бы не было говнокода, но в итоге получается задержка минимум секунда, и оооочень долго.
Видел предложения по поводу пустых циклов и т.д. - ну это же жестоко, я хот и не понимаю в этом особо, но это тоже самое что на нейтралке в отсечку движок крутить. Речь шла вроде про 30%, насколько могу понять одно из ядер до упора грузится просто.
Готовых костылей адекватных не нашел, большая часть предложений кода для решения конкретики, нет шаблона для это. Про костыль в цикле видел упоминание, но не нашел темы и там тоже вроде не все так просто было.
Пробовал в циклы нагружать длинными действиями(чтоб проходов меньше было), например загрузить куки, но чем больше итераций, тем больше виснуть начинает.
Уже дергается глаз....
Подскажите как корректно спать в цикле меньше секунды? И просто меньше секунды…
@ya362 said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
Как спать меньше секунды?
Никак, нет, конечно оно как вы и описали спит. Но разработчик давным давно говорил, что минимальное время сна это 1 секунда.
@UserTrue это как машина с одной передачей, только с 4ой.... Тогда о каком коммерческом применении может идти речь, тем более для начинающи... Как можно делать многопоток с множеством проверок и паузой в 1 секунду минимум, без возможности регулировки.
@ya362 said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
@UserTrue это как машина с одной передачей, только с 4ой.... Тогда о каком коммерческом применении может идти речь, тем более для начинающи... Как можно делать многопоток с множеством проверок и паузой в 1 секунду минимум, без возможности регулировки.
Какие нафиг паузы? Кто вас научил так делать? БАС это не система реального времени и в задачах работы с браузером этого не требуется, в самом браузере нет точных таймеров, там есть цикл событий и он не гарантирует точное выполение задач.
@UserTrue said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
@ya362 said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
@UserTrue это как машина с одной передачей, только с 4ой.... Тогда о каком коммерческом применении может идти речь, тем более для начинающи... Как можно делать многопоток с множеством проверок и паузой в 1 секунду минимум, без возможности регулировки.
Какие нафиг паузы? Кто вас научил так делать? БАС это не система реального времени и в задачах работы с браузером этого не требуется, в самом браузере нет точных таймеров, там есть цикл событий и он не гарантирует точное выполение задач.
Учит разработчик и очень даже требуется, например добавить задержку в цикл, что бы небыло зависона. Разработчик предлагает поставить штатными средствами поставить паузу в while размером 100мс, как я ее могу поставить? - как в видео не работает.
@ya362 said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
Учит разработчик и очень даже требуется, например добавить задержку в цикл, что бы небыло зависона. Разработчик предлагает поставить штатными средствами поставить паузу в while размером 100мс, как я ее могу поставить? - как в видео не работает.
Ссылку можно? Там скорей всего синхронная обработка в цикле большего списка и чтобы не повешать интерфейс в таком случае полезно добавлять небольшие паузы, да и то это не обязательно делать на каждой итерацией цикла. Достаточно каждые 10000 итераций добавлять 1 сек сна. В большинстве же случаев в БАС происходит асинхронная работа (читать файл, загрузка страниц, http запрос, клик и тп) и эти паузы не нужны
@ya362 said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
Мне важен результат, жду конструктивных комментариев.
Ждите ))))
@UserTrue said in
Ссылку можно? Там скорей всего синхронная обработка в цикле большего списка и чтобы не повешать интерфейс в таком случае полезно добавлять небольшие паузы, да и то это не обязательно делать на каждой итерацией цикла. Достаточно каждые 10000 итераций добавлять 1 сек сна. В большинстве же случаев в БАС происходит асинхронная работа (читать файл, загрузка страниц, http запрос, клик и тп) и эти паузы не нужны
Там немного по другому получилось, автор предлагает сделать паузу 10мс из-за допущеной ошибки , но по логу видно что даже там минимум секунда получается
https://youtu.be/Vj2Q50FIBi4?t=6281
А мне то как быть? Подразумевается одно, в итоге другое, а дурак я....
Есть множественные фидбеки по этой теме и с этим надо что-то делать.
Еще одно уточнение, что речь идет про НАЧИНАЮЩИХ(насколько могу понять, это целевая аудитория).
В подобного рода софте обычно идет delay: 300ms и выполняется задержка ровно в 300 милисекунд без каких либо разбросов.
Не думал что можно споткнутся на таком ровном месте.
@IvanM said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
@UserTrue said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
в самом браузере нет точных таймеров, там есть цикл событий
То есть костыль не возможен в принципе?
В смысле? Топикастер же в первом сообщении указал ссылку на тему, где реализовали сон менее 1 секунды через node js
@Fox said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
@IvanM said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
@UserTrue said in Спать в милисекундах работает не корректно(множественное применение и меньше секунды)).:
в самом браузере нет точных таймеров, там есть цикл событий
То есть костыль не возможен в принципе?
В смысле? Топикастер же в первом сообщении указал ссылку на тему, где реализовали сон менее 1 секунды через node js
Оу, действительно. Я не дочитал.
ya362, чувак, а что ещё не так с этим сном? Вроде как есть костыль же.
Как я понял если в цикл не добавлять, то нужное количество времени сон длится.
Если добавить 1 раз 100мс может накинуть 300мс, если добавить 1 раз 300мс может накинуть 500мс, если накинуть больше 500мс идет от секунды.
Не из-за того ли, что БАСу требуется время между этими снами на обработку скрипта?

