Выглядит как будто не к тому скрипту обращаетесь.
В инструментах разработчика в браузере во вкладке сеть смотрели, какой код ответа у сервера, например?
А что вы уже умеете?
Так-то, при наличии каких-то базовых знаний по фронтенду можно теми же средствами разработчика посмотреть, что и как на сайте сделано, какие библиотеки применяются. А при наличии знаний английского - почитать информацию о найденных технология/библиотеках.
В принципе то, что вы перечислили - это можно назвать frontend - вот по этой области информацию и ищите.
Сомневаюсь, что есть где-то готовый курс аля "С нуля, но SPA на канвасе с фоновой музыкой", скорее всего придётся самому изучать по отдельности и собирать по кусочкам.
Собственно вот заголовок CF-Cache-Status - его CF добавляет и по нему можно понять, что там с кешем. Но для вебсокета такого заголовка нет, так что этим способом разобраться не получится.
Насколько помню, CF в ответе добавляет заголовки, попал ли в кеш или нет. И, опять же, насколько помню, у него там как минимум два кеша, которые разными заголовками сбрасываются.
Т.е. как минимум можно посомтреть - CF кеширует или не CF
Мне как-то в подобной ситуации (правда не с доктриной, а в принципе) помогло вынесение тела цикла в функцию. Всякие unset'ы внутри цикла не помогали, а вот как вынес код каждой итерации в функцию - так сразу памяти стало хватать. Почему - копаться уже не стал.
luxurypluxury, насколько я помню - там в итоге же обычная html-форма на странице оказывается. Так что надо на событие submit повесить обработчик, который снимет атрибут disabled. Насколько помню - так должно сработать.
Скорее всего вот такой способ добавления элементов dealsList.innerHTML+=displayDeal;
сбрасывает обработчики на ранее добавленных элементах.
Попробуйте в одном цикле сформировать нужный html, а затем во втором навесить обработчики. Или добавлять разметку через методы работы с DOM, типа appendChild() и т.п.
Так селекторы-то разные передаются в метод find() - один находит, другой нет, видимо.
А дебажить - выводите переменные через print_r(),var_dump() и после die(). Так и увидите, что там внутри.
1. Какие вводные данные? Координаты шаров, что-то ещё?
2. Краный шар стоит на месте?
3. Что имеется в виду под выгодной траекторией? Коротчайшая на плоскости - прямая, например.
4. Технологии, шары - это дивы или canvas или что?
WSGlebKavash, собственно как вариант - попробовать скачать какой-то другой программой, тем же yt-dlp например. Если там проблемы не будет - значит дело в софте.
Я, честно говоря, сам удивился такому поведению программ, тем более, что одна - это форк второй.
Чем качаете-то? Не знаю с чем связано, но какое-то время назад видео качал через yt-downloader - качалось очень медленно. То же самое видео через yt-dlp - уже со скоростью канала.