Логика скрипта ( вопрос )



  • Привет!

    Подскажите пожалуйста, как лучше организовать логику скрипта?( я уже голову сломал ибо только начал изучать JavaScript )

    По-ходу основного скрипта перебираются объекты, по ссылкам, и над ними совершаются определенные действия...

    Объекты есть двух типов. Условно говоря "А" и "В". Определить их не составляет труда ( проверить наличие объекта на странице )
    С объектом "А" - работаем.
    Объект "В" не трогаем и всячески игнорируем.

    А вот дальше у меня начинаются трудности...
    Сначала я не мудрил - просто заходил на объект, проверял есть ли характерный элемент, записывал его в переменную и ставил блок ( IF - ELSE ) и дальше по плану.
    Но этих объектов много (от 10 до 25 на странице ), и к десятому шагу я уже запутывался окончательно. Такая портянка блоков вырастала, что ппц!

    Потом вынес проверку в отдельную функцию и теперь не могу сообразить, как из функции вернуться к основному скрипту.

    1. Берем первый объект.
    2. Проверяем что это объект типа "А"
    3. Если да, ( Это объект А) то выполняем на нем действие.
    4. Если нет, ( Это объект В ), то ничего не делаем с ним и переходим к следующему.

    Пробовал "установить метку" - "перейти к метке", но тоже не понимаю, как правильно написать...

    В общем, буду рад любым советам.
    Извините за глупые вопросы )

    п.с.
    И еще один момент:
    Есть таймер ожидания вида "минуты:секунды". Например 2:30
    Как то можно записать его в переменную в секундах, чтобы выставить сон или эмуляцию бездействия на это время ? Время часто меняется, так что заранее не угадать...



  • @fox-mulder честно сказать трудно понять что ты хочешь сделать как я понял ты хочешь проверить один элемент если он есть выполняешь если его нет проверяешь второй элемент если и его нет идешь дальше а если второй элемент есть то делаешь другое действие?



  • Не совсем.

    Попробую аналогию привести для понимания:
    Есть магазины и склады. Они идут списком, в виде таблицы, но вперемешку.

    Мне нужны только магазины.

    1.Я захожу по первой ссылке.
    2. Определяю - магазин ли это по наличию элемента на странице.
    ( если элемент есть - значит магазин. Если нет - склад. И на основе этого ставлю блок "IF - ELSE" )
    3. Если магазин - записываю цену , а затем перехожу ко второй ссылке.
    4. Если склад - сразу перехожу ко второй ссылке ( с ним никаких действий )

    Затем те же действия со второй ссылкой, потом с третьей, десятой ... двадцатой.



  • @fox-mulder Это через список надо делать. Все объекты А у тебя должны быть в одном списке. Создаешь список SPISOK_OBEKTOV_A
    далее добавляешь в него, по нужному критерию нужные тебе элементы.
    Далее, обрабатываешь уже полученный список, например вот так

    0_1550998590706_222.JPG

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



  • @fox-mulder я бы сначало отфильтровал обекты на А и Б и потом уже работал сними. @Samael_96 дело говорит ))

    Ток вот я понять не могу почему у тебя вышло много if'ок? можно-же использовать одну, и перезаписовать переменную котокая в if'ке .



  • А если объекты обновляются ? Не ежесекундно, конечно, но довольно часто.

    Вверху таблицы оказываются объекты с лучшей ценой. То есть, они часто меняются и нас интересует только первые несколько страниц таблицы.
    В любом случае буду пробовать. Спасибо!

    Про "перезаписовать переменную которая в if'ке ." - не могу понять.
    Видимо, знаний еще не хватает в JavaScripte )



  • @fox-mulder said in Логика скрипта ( вопрос ):

    А если объекты обновляются ?

    В этом случае нецелесообразно фильтровать объекты и работать с ними в разных циклах. Пусть все объекты обрабатываются одним циклом. Внутри цикла скрипт должен определить "сорт" объекта и работать с ними в зависимости от полученного результата.
    Вообще, однотипные действия желательно обрабатывать потоками. Это быстрее, но будет жрать ресурсы сервера.



  • @xclsv

    Спасибо!
    Вроде начинаю понимать


Log in to reply