потому что a у вас not defined - все логично.
Надо определить, это обычная DOM-нода a.
Либо если вам с jQuery проще - то поменяйте код чтобы навешивать событие на click так как это положено в jQuery.
вы просто рандомно код перемешали - конечно все сломается.
Ну вы же понимаете что эта ошибка значит?
вы частично поменяли нативный код на js - меняйте уж полностью. Главное там в обработчике (строчка с setTimeout) а как его навешать - дело ваше.
И в чем именно проблема хранить роль и читать?
Если это фронт - храните где угодно, хоть в переменную сохраните. читать из переменной тоже проблем нет. Если у вас нет проблем вытащить "данные" (я так понимаю роль) из бд то вообще не понимаю что вам еще не хватает.
Сформулируйте понятнее вопрос.
вот так: https://jsfiddle.net/fj1uo7v5/
еще вам не нужна modalData - она ничего не делает в данном случае.
так же подсветку при наведении мыши лучше сделать через CSS, через :hover
Не знаю как насчет Питера, но можно поискать оффлайн воркшопы и буткампы - это популярно в других странах может и у нас есть. Онлайн конечно все есть, но люди все еще социальные обезьянки и многие личное общение ценят больше чем буквы на мониторе. Как те кто хочет чему-то научиться так и те кто хочет чему-то научить.
Я бы сходил на какой-нибудь ивент где тусят разработчики и поспрашивать - те кто уже нашел в себе силы чтобы выйти из дома чтобы пообщаться вживую, могут знать больше :)
Дело видимо не в await или promise.all, или что-то с eventloop, а в работе с mongo.
Пул по умолчанию в официальном драйвере - 5.
Кроме того для чистоты эксперимента нужно запускать не друг за другом а отдельно с async и отдельно с .all.
Так же включите логи в монго драйвере и посмотрите что именно и когда он запрашивает с базы. Может у вас там в середине .all коннекшн отваливается и он переподключается или еще что.
И у вас в вопросе перепутано - не await медленнее (что логично) а .all медленее (что как раз и происходит)
Есть заголовки запроса, который посылает браузер на сервер, есть заголовки ответа, которые посылает сервер. В заголовках ответа сервер может сказать "давай-ка перезагрузи страницу вот с этим урлом" например.
И те и те можно посмотреть в девтулзах, в том же месте где у вас скриншот с запросами. Кликните на data.json и смотрите в окошко с деталями запроса.
windf1n,
У меня нет опыта организации видео стримов, и хотя и понимаю проблему и задачу, у меня нет готового ответа.
Мне кажется самое адекватное решение для вас на том уровне понимания технологий который у вас есть - это взять готовый сервис где все технические вопросы уже решены. Или поправить математику вашего проекта чтобы вам это все еще было выгодно, или взять тестовый аккаунт у такого сервиса и очень хорошо покопаться на предмет того как они защищают видео от вставок на чужой сайт.
Такой же функционал есть у youtube и vimeo например - можно попробовать поковырять их.
Второй вариант - собрать что-то "на коленке" достаточно надежное чтобы вашему среднему пользователю было проще заплатить чем обходить.
Там вверху советовали CSP - я бы это попробовал для начала. Проверять referrer так же можно.
Затем - если сервис платный, значит у ваших пользователей есть аккаунты, их тоже можно задействовать, например генерить токены для ссылки на видео - или одноразовые, или с привязкой к аккаунту пользователя, чтобы видео по этой ссылке мог посмотреть только пользователь для кого она создана.
Много всего можно придумать, но это нормальный такой объем работы и ресерча.
С большой вероятностью вам будет достаточно чего-то простого типа проверять referrer.
АртемЪ, потому что файрвол,ип, нат и прочее у вас на уровне транспорта, а условие ограничения- на уровне приложения.
Как вы планируете файрволлом разграничить доступ так чтобы с одной вкладки браузера можно было смотреть а с другой нет , если обе они забирают видео с одного и того же ип?
АртемЪ, автору надо ограничить доступ для пользователей (считай произвольных компов в сети), тем кто открыл ссылку с его сайта - разрешить, а тем кто открыл ту же самую ссылку с любого другого - запретить. Такое просто правилом в файрволе не решается - это вообще может быть один и тот же клиент, открывающий видео по разному.
ince, 8к+ коммитов, уже 5 версия и хз сколько лет использования в продакшене. На мой взгляд - нормальная степень готовности.
Знаете более проверенную и "не сырую" - поделитесь.
У вас конкретный вопрос - как сделать чтобы не крашилось. На это есть конкретный ответ, написанный в доках реакта и вы его получили еще в своей консоли, если вы это читали - то уже знаете это все и без тостера и наличие componentDidCatch вас не должно удивлять.
Поэтому и ответ из серии "сам разбирайся", что вы еще хотели получить на вопрос, где в скриншоте ответ.
То что вас "волнует" - никому за пределами вашей головы не известно пока вы это не скажете.
ничего не понятно, вы сначала должны сами четко определить взаимосвязь между данными.
Нарисуйте на бумажке что должно получиться а потом уже можно будет подумать как это сделать в d3.
судя по тому что лежит в jsfiddle (там просто два набора исторических данных) вам нужен multi-line chart.
Надо определить, это обычная DOM-нода a.
Либо если вам с jQuery проще - то поменяйте код чтобы навешивать событие на click так как это положено в jQuery.
вы просто рандомно код перемешали - конечно все сломается.