Это копия, сохраненная 16 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Позволь мне рассказать историю о зарождении легенды, которая началась 3000 лет назад. В то время я был там - залетный свидетель этого знаменательного события.
В один прекрасный день, один вкатыш задался вопросом, который мучил его уже долгое время - как в одну цифру вставить строку или функцию? Он обращался к совету, но никто не мог ему помочь, потому что по умолчанию, если присвоить цифре какое-то значение, то это значение будет присутствовать у всех цифр.
Собрались различные эксперты и начали обсуждать возможные варианты и способы решения этой проблемы. Но никакое предложение не приносило результатов, и совет стал отчаянно пытаться угодить вкатышу.
И тут, как из ниоткуда, на совет явился древний маг. Все замерли в ожидании, не зная, что ожидать от него. Растерянный совет переглядывался и пошел ко дну в безнадежных попытках решить задачу.
Но древний маг начал писать на черной доске непростительный код, который вызывал у всех присутствующих благоговейный трепет. Это был код, который никто не должен был видеть, и о котором не смели говорить.
Совет объявил, что подобный код никогда ранее не звучал в этом треде и не должен. Вскоре после этого маг покинул помещение, и вкатыша больше никто не видел.
Однако, со временем по всему интернету начали ходить слухи о древнем маге, который иногда посещает треды и карает тех, кто не знает сути, тех, кто не жаждет знания. И так появилась легенда.
768x576, 0:10
t. considering using vite
Ходил недавно на le Sobes где у чуваков вит был в проде.
Мы либо получаем токен в жсоне, и дальше запсываем его в httponly куки, и дальше отправляем как минимум рефреш токен в куки, либо сервер сам нам записывает httponly куки.
Иначе вообще похуй где хранить токен, он ведь все равно будет доступен из JS и мы все равно сможем получить к нему доступ в случае xss атаки?
Есть ли какой-то вариант, помимо того, чтобы в конец пизданулись и парсим клиентский код прямо из комментов каких-нибудь, когда может быть произведена xss атака? Можно ли ее выполнить из каких-нибудь Open Graph превьюх или oEmbded? Там доступ к коду извне этих превьюх доступен или запрещен как в iframe?
И если xss это вообще крайне кривожопая реализация какой-нибудь eval, то можно опять же, забить хуй и хранить jwt где хотим, а все эти рекомендации с недоступностью jwt из js это просто чрезмерно паранойная хуйня?
Может ли какой-то вирус залезть в куку/localStorage пользователя в браузере и можно ли в этому случае как-то защититься, или опять же это не имеет значения?
С первых дней изучения веба слышал откуда-то из-под шконки подобные вскукареки. Сейчас же наступила пора и самому искать свою первую галеру. Долго расписывать не буду, скажу лишь то, что это всё полный пиздёж
Начал искать работу в начале месяца, за это время сделал около 150 откликов, выполнил 8 тестовых, позвали на 3 технических собеса и после каждого из них предложили оффер. Начитавшись всяких шизотерических высеров, я заранее настроил себя, что буду хвататься за первое предложение, лишь бы хоть куда-нибудь да взяли. А на деле оказалось так, что ещё и выбирать пришлось, куда хочу, а куда нихачу
С понедельника ещё одно офисное быдло поедет воду из куллера пить, можете поздравить
Сделал тестовое на позицию на 800$ (просто что бы на собес попасть). React/redux/firebase/google map api/material ui. Видимо настолько хуёво сделал, что не дают обратную связь. Алсо, для проверки, просили мои апи ключи кек.
Я вообще просто заполнил линк, хуярил всех в контакты, и мне через 3-4 недели сами начали писать, я даже не че не далал, про опыт не пиздел.
Ну так тогда ты че сказать то хочешь?
А ты на хостинг залил какой-нибудь? Может они запустить хотят чтобы посмотреть не только на код, но и на оформление визуальное
Ебаться будешь, если используешь что-то хитровыебанное в пайплайне, например, Linaria.
> Реакт для омежек.
Увы и ах, реа-кек-т и тс стали де-факто стандартом клиентсвйд тырпрайз разработки. Остальное лишь мрии.
Сервер сам может поставить такую куку в хедере ответа. Мы можем при получении из жсона записать ее в куку Cookies.set('accessToken', accessToken, { sameSite: 'Strict', httpOnly: true }) - мы с ответом от сервера больше ничего не делаем, и в эту куку мы токен можем записать, а получить её обратно сами не сможем, только указать, к какому урлу эту куку мы будем добавлять. Т.е. эта запись в куку будет происходить в одностороннем порядке. Это один из немногих вариантов, когда мы не будем иметь доступа к такому хранилищу из js, но при этом браузер сам будет добавлять токен к реквесту. Но опять же, если xss атака на нашем сайте не возможна, то и нахуй тогда это вообще нужно? Вот мой вопрос
Блевакт активно вытесняется с нашего православного рынка. Нормальные пацаны выбирают вьюшечку, мискарис и кошкажену. На том же хахару уже треть вакансий вьюшная
Компания Meta, Мета (Американская транснациональная холдинговая компания Meta Platforms Inc.) и другие отмеченные "звездочкой" организации - экстремистские организации, деятельность которых запрещена в Российской Федерации. Инстаграм и Фейсбук - социальные сети (продукция), принадлежащие компании Мета, деятельность по распространению которых запрещена в Российской Федерации.
location.reload(true) - работает только у лисы. И хз работает ли, вроде как деприкатед, даже не проверял.
Неужели только кроме как ставить параметры к файлам/фоткам/стилям/жыесу никак не сбросить?
Или я слепой и такая штука есть в стандартном апи?
>Сервер сам может поставить такую куку в хедере ответа
да
>Мы можем при получении из жсона записать ее в куку
нет
На то она и httpOnly кука, что у тебя из JSа к ней нет доступа. Её можешь ставить только сервер. Защита здесь в том, что даже зная данные из этой куки, ты не сможешь их выставить
В ТЗ было только скинуть ссылку на гитхаб. Имхо, если даёшь тестовое, то у тебя должны быть свои ключи от технологий, которые ты указываешь в ТЗ. если серьёзные ребята, конечно
Блядь, точно, я думал там есть односторонняя запись, я обосрался. Ну тогда у меня по прежнему вопрос, какого хуя мы жвт токены гоняем по жсонам? В какой момент куки начали противопостовляться токенам, а не работать вместе с ними, что это за хуйня вообще? В каждо втором гайде кто-нибудь обязательно спизданет НИ ХРАНИТИ НИЧЕГО ВАЖНОГО В ЛОКАЛСТОРЫЖЫ, и в каждом первом мы оперируем токанеми на уровне жса. Тогда вообше ими нужно оперировать прямо на лету, когда каждый запрос возвращаем нам токен для следующего запроса или там на пару секунд. Пиздец короче. Предлагаю объявить XSS депрекейтед атакой, не евалить код где не просят и делать что угодно в локалсторадже, и чтоб не пиздел никто
скидывай код, чего ты мнешься как баба.
ну или хотя бы ссылку на посмотреть.
никто тебя тут дианонить не собирается.
Vue - детский конструктор, который каким-то чудом удается проталкивать дно-кабанам не понимающи в IT (дайте мне тупого кабана и уже завтра я буду писать у него на Turbo Basic)
Ты сначала устройся хотя бы к тупому кабану, пионэр.
Потому что сервер авторизации и сервер с приватными данными, это могут быть 2 разных сервера. Сервер авторизации даёт тебе условный короткоживущий acces токен и в куку вшивает долгоживущий refresh. Получив на клиенте acces токен, ты сохраняешь его у себя в локалстораже и добавляешь в хэдер при обращениях на сервер с приватными данными. Который просто проверяет токен и, если он валиден, отдаёт данные, если невалиден - шлёт нахуй. На клиенте ловишь 401й код, обращаешься к серверу авторизации за новым acces токеном, он тебе его даёт (если валидная refresh кука), а потом просто дублируешь запрос за данными и забираешь их. Примерно так оно и работает. Если добавить на сервер с данными ещё и логику по авторизации, обновлению токенов и прочую хуйню, то это замедлит его работу. Для пет проекта или небольшого магазина по перепродаже резиновых членов с али это не критично, но на энтерпрайзе сервер ахуеет. Для этого и идёт разбиение доступа на 2 токена
Я сам по-началу не понимал этого прикола, потому что во всех гайдах сервер авторизации и сервер с данными, это один сервер. И лишние действия в виде acces токена казались каким-то бредом
Я вот примерно так же себе это и представлял, спасибо что расписал. Когда я бэкеру сказал про куки токены, он сказал что-то вроде - какие еще куки? Как браузер может слать куки? Зачем они нужны. Ну я немного охуев от такого ответа решил дальше не вскрывать эту тему.
Это тот же бэкер, про которого я в начале прошлого треда писал, который рекомендовал уведомления присылать каждые 5 секунд пингуя бэк
>тут же делаю новый запрос
Как ты его делаешь?
>а ваш этот query закеширует
Ну query не просто как ему вздумается данные кеширует. Стандартный сценарий - обновляет кеш полностью при рефреше страницы. Дальше уже смотри сам, как ты хочешь обрабатывать получение новых значений. Если ты вживую хочешь обновлять данные у пользователя, то тут дело только в реализации, сам query здесь скорее будет плюсом, у него намного удобнее добавить запись в кеш. Если хочешь именно обновить данные - есть разные способы, но самый простейший - вызвать рефетч, тогда он проигнорит кеш. Если хочешь чтобы при любом пуке всегда происходил свежий запрос - используешься useLazyQuery. Короче опять людям лень доку почитать, а потом оказывается, что либа магическим образом не предсказывает твои желания. То же самое с TS, от которого "больше вреда чем пользы" пока ты таки не удосужишься пару часов на чтение доки выделать наконец с барского плеча
>Как ты его делаешь?
когда возвращаюсь на этот роут, либо когда нажимаю f5
>Стандартный сценарий - обновляет кеш полностью при рефреше страницы
все как у меня, гружу данные полностью с сервера, но я не сохраняю кеш, нахуя он мне на фронте?
>у него намного удобнее добавить запись в кеш
А нахуя если мне проще подтянуть данные с сервера?
Зачем вообще кеш на рестах? Есть хотя бы 1 кейс?
>Если хочешь чтобы при любом пуке всегда происходил свежий запрос - используешься useLazyQuery
Нахуя мне тогда лишнее звено? тогда я буду по старинке использовать голый fetch на каждый пук
>Короче опять людям лень доку почитать
Правильно ли я понимаю, эта либа нужна если на бекенде сидят пидорасы и жалуются что бы я не отправлял запросы на каждый пук?
Спасибо, но с такими пидорасами я не работаю
>Если добавить на сервер с данными ещё и логику по авторизации, обновлению токенов и прочую хуйню, то это замедлит его работу.
Разбивают потому что так удобно, если кому-то будет удобно в монолите сервис авторизации держать, то там его и будут держать. Ты переоцениваешь мифическую нагрузку на сервер, у тебя 99% всех запросов будут идти на твоё приложение а не на сервис авторизации, плюс твоё приложение и так в каждом запросе декодирует токен
>Правильно ли я понимаю, эта либа нужна если на бекенде сидят пидорасы и жалуются что бы я не отправлял запросы на каждый пук?
>Спасибо, но с такими пидорасами я не работаю
Проорался с этой оптимизации посыланием нахуй
По остальному - если твой кейс: одна единственная голая страница с 100 записями, то не понятно, что тебе вообще там еще нужно, кроме единственного запроса в самом начале? Что-то из разряда - зачем мне TS если я console.log('hello') могу в консоли браузера и так вывести? Ну да, в этом случае тебе вообще нихуя не нужно. Ты просишь решить проблему, которой не существует
Для других интересующихся людей могу представить более реальный кейс - у тебя 5 вкладок внутри приложения, таких страниц с вкладками 10. Чтобы каждый раз данные не перезапрашивать их можно закешировать. Да, можно закешировать руками в стор, куда удобнее с помощью query, если вам потом еще и динамически эти кеши обновлять нужно, тот тут сложность пердолинга руками по сравнению с query вообще не идет ни в какое сравнение. Ну или можете слать по 150 запросов, чтобы получить буквально то же самое из раза в раз и слать бэкера нахуй, видимо это тоже рабочий вариант, на собесах тоже можете так же отвечать, пользователям email рассылку можно делать с адресным посылом нахуй, из-за жалоб на юсер экспериенс
>Если бекенд не тянет мои запросы с фронта, то идет на хуй такой бекенд и делаем заявку на увеличение ресурсов сервера
virgin backend: Господин фронтендер, у вас фронт за час запросил 108 000 000 строк записей с бэка в 3 600 000 запросах, за этот час никакие из этих данных даже не обновились, что у вас там такое на фронте происходит?
proud posture of a megalomaniac frontend patient: Идите нахуй, у меня while(true) запрашивает данные данные циклично нонстопом, вдруг они обновятся, я не хочу тянутся за Ф5, других решений и знаний, кроме посыла нахуй у меня нет, если ваш бэк не может это обработать, то это не мои проблемы
>Как браузер может слать куки?
Берёт и без задней мысли рыча и двигая тазом шлёт. Браузер может ставить любые куки, кроме httponly
>каждые 5 секунд пингуя бэк
А за такое в приличном обществе по рукам бьют. Если нужна постоянная связь, то WebSocket в помощь, но он ресурсов много кушает, чтобы одновременно держать несколько тысяч сокетов нужна уже нормальная конфигурация сервера. Если же постоянный двусторонний коннект не нужон, то лонгпуллингом можно обойтись
Открыл Яндекс, нет у них там никакого кеширования
Открыл новости mail.ru и нет там никакого кеширования на каждую новость (всегда отправляются новые запросы)
>у тебя 5 вкладок внутри приложения, таких страниц с вкладками 10
то есть ты описал пидораса на пользователе, который умышлено открыл мой сайт в 10 вкладках?
С каким пор о таких пидорасах вообще забояться?
Я бы для такой гниды не стал бы делать ничего даже на основе сторов, пусть грузит бек, а бек сам расхлебывает все это, банит по ип, ставит ограничения на фаерволе
Мы вносим в проект технологию ради 1% пидарасов мультивкладочников....
> у вас фронт за час запросил 108 000 000 строк записей с бэка в 3 600 000
Ты считаешь что это была атака флудом и некий парсер? ставь ограничение на фаерволе и внутри роутов
оставляю за тобой право быть долбоебом
>плюс твоё приложение и так в каждом запросе декодирует токен
Что быстрее, декодировать токен или декодировать токен, получить из него краткую инфу о юзере, залезть в базу данных, достать оттуда нужную инфу по юзеру, его данные авторизации и сверить их с инфой в декодированном токене?
Наверное всё таки первое. Поэтому сервер с данными просто валидирует токен, перекладывая всю нагрузку на сервер авторизации
>Ты переоцениваешь мифическую нагрузку на сервер
Тут с тобой согласен. При современном уровне железа нужно ещё постараться, чтобы заставить сервер страдать. А довести до пиковых нагрузок хоть сколько-нибудь серьёзный конфиг без дудоса вообще не получится.
Но если можно делать сразу хорошо и правильно, то зачем делать криво?
>все как у меня, гружу данные полностью с сервера, но я не сохраняю кеш, нахуя он мне на фронте?
В реакт квери по дефолту кеш в привычном понимании вообще отключен, у тебя на каждый пук будет новый запрос идти за новыми данными, причем пук это даже альтаб. Чтобы включить прям КЕШ то нужно в опциях указывать сколько данные могут считаться свежими. За этим кешом скрыто очень много других полезных фич, т.к. мы работаем с реактом то в теории можно отрендерить 3 компонента, каждый из которых делает одинаковый запрос, реакт квери это автоматом дедюпит. Когда ты нажимаешь кнопку назад, то показываются данные из того самого кеша, и в фоне делается новый запрос, а уже дальше реакт сам обновляет дом если вдруг что-то поменялось. И это я тебе еще не про киллер фичи рассказываю
>Но если можно делать сразу хорошо и правильно, то зачем делать криво?
Зачем вообще что-то делать хорошо? Вон там выше был новый подход к разработке PNH (пусть идут нахуй)
Хочу у 1 лоха украсть токен с куки
на самом деле не хочу, просто так наглядней
Ты пишешь это шизу
>И это я тебе еще не про киллер фичи рассказываю
А вот мне расскажи пожалуйста :(
>то есть ты описал пидораса на пользователе, который умышлено открыл мой сайт в 10 вкладках?
Ебать ты пидорас братишка, чмоша.
> Открыл Яндекс, нет у них там никакого кеширования
> Открыл новости mail.ru
public страницы, на 90% статичные. ММММ
> а бек сам расхлебывает все это, банит по ип, ставит ограничения на фаерволе
На месте кабана, я бы убытки на инфре, которые ты не можешь оптимизировать, взял бы с твоей ЗП.
> Мы вносим в проект технологию ради 1% пидарасов мультивкладочников....
Мы вносим правки ради 5% яблодебилов от 25% мобильных яблодебилов, что эквивалетно тому самому 1% мобильных дебилов. Твой аргумент invalid.
>то есть ты описал пидораса на пользователе, который умышлено открыл мой сайт в 10 вкладках?
Это животное, просто скотина даже не поняло, что вкладки эти находятся внутри одной страницы, не отрк ой блядь да иди в пизду. вкатун прошел курсы и думает что он ебать архитектор с 50 летним опытом
САЙТОМ НЕ ТАК ПОЛЬЗУЮТСЯ
НЕ В ТОМ БРАУЗЕРЕ СИДЯТ
НЕ ПОКУПАЮТ ПРЕМИУМ ПОДПИСКУ ЗА 50 БАКСОВ
ЗАПРЕЩАЮТ КУКИ
ИСПОЛЬЗУЮТ АДБЛОК
ЗАПРЕЩАЮТ УВЕДОМЛЕНИЯ
ЗАПРЕЩАЮТ ЗАПРОС ГЕОЛОКАЦИИ
А какие альтернативы Виту? Create react app уже два года как устарел, самому конфиги вебпака писать ебанёшься
>На месте кабана, я бы убытки на инфре, которые ты не можешь оптимизировать, взял бы с твоей ЗП.
Не смеши, это оптимизация на стороне бекендера, если ему так сложно постоянно обращаться в базу, пусть создаем кеш для апи реквестов и сам управляет этим говном
Ты-то там нахуй тогда нужен, лол?
Ну возьмёт бэкендер себе asp/spring, будет страницы серверсайд рендерить. Ты там нахуй нужен?
Нет, поэтому всех воротит от редакса в вакухах. Но таковы реалии.
Либо хипсторское и пилится одним человеком с кучей ишшу, либо это говно.
>Нет, поэтому всех воротит от редакса в вакухах
Я тоже воротил нос, но хавать хочется - большинство вакансий всё равно требуют редакс, даже новые проекты с ним начинают.
>за этот час никакие из этих данных даже не обновились, что у вас там такое на фронте происходит?
Как фронт должен понять, что ничего за час не обновилось?
Ну потому что, внезапно, редакс тулкит популярный, всё уже по накатанной. Коммьюнити есть.
С менее популярными решениями либо произойдёт какая-то хуйня, либо будут затыки.
Если говорим про всякий бигтех. Если не трогать их некрорепы с самописными обёртками и утилсами для редуха - ну скорее всего будет вариация в виде сосаги, ртк. Где-то прослойка мобыкса в одной из команд. Так или иначе на долгострой хочется что-то проверенное.
Собственно, про вит я тоже и спршаивал, потому что не хочется через пару месяцев узнать, что оно делает трудновоспроизводимое КРЯ, которое воспроизвелось именно у тебя.
чел, ты выдумал какой-то уникальный пример, я за всю жизнь не встречал идиотов, которые на уровне бизнес требования и дизайна позволят вот так просто задвоить данные и клонировать 10 вкладок!
Ладно! Хорошо! Каюсь, может быть такие и оправдано!
Мне нужно спроектировать сайт на моей spa-тильде и для этого я накинул 10 блоков с корзиной на главную страницу - 10 запросов улетело на сервер
Ради этого подключат технологию и оптимизировать 0.00001% русурсов сервера? Чел, почитай что из себя представляет современное железо, ты из тех кто оптимизирует сортировку внутри массива из 100 элементов?
Протыкал все популярные сайты, от казино, до игр и букмекерских контор с графиками под крипту, никто не занимается такой чепухой, все запрашивают свежие данные с бекенда
А как фронт вообще в теории это может понять, и нужно ли это ему понимать? Ответь сначала на эти вопросы
>из тех кто оптимизирует сортировку внутри массива из 100 элементов?
Этот bogo-сортировщик порвался
>Ну возьмёт бэкендер себе asp/spring, будет страницы серверсайд рендерить. Ты там нахуй нужен?
Нужен что бы писать фронт, а не заниматься бек-оптимизациями и закрывать дыры в кривых руках говнокодера!
Что за дурацкий аргумент про ненужность?
Дядь, отрисуй кнопку на бекенде в css, мне самому лень делать расчеты! не хочешь? а нахуй ты тогда там нужен? я сейчас возьму node и Farebase
Это ты написал так, как будто фронт может это понять. Вот и отвечай. Иначе к чему ты вообще это написал?
>Что за дурацкий аргумент про ненужность?
Чем ты лучше версталы с 5-ью годами опыта в вёрстке за 80к, если ты не занимаешься фронтенд-разработкой, не говоря про инжиниринг?
Порвался, но из-за чуваков которые тащут в проект всякое говно типа redux\momentjs\react-query а я потом страдаю копаясь в этом говне
Спрашиваешь зачем? ну это оптимизация, помощь бекам, а что если Вася отправит 1000000 запросов мы спасем прод!
>чел, ты выдумал какой-то уникальный пример, я за всю жизнь не встречал идиотов, которые на уровне бизнес требования и дизайна позволят вот так просто задвоить данные и клонировать 10 вкладок!
>
>Ладно! Хорошо! Каюсь, может быть такие и оправдано!
>Мне нужно спроектировать сайт на моей spa-тильде и для этого я накинул 10 блоков с корзиной на главную страницу - 10 запросов улетело на сервер
>
>Ради этого подключат технологию и оптимизировать 0.00001% русурсов сервера? Чел, почитай что из себя представляет современное железо, ты из тех кто оптимизирует сортировку внутри массива из 100 элементов?
>
>
>Протыкал все популярные сайты, от казино, до игр и букмекерских контор с графиками под крипту, никто не занимается такой чепухой, все запрашивают свежие данные с бекенда
Сука, больное, дегенеративное животное.
Ты задал вопрос - для чего нужен query? Для тех случаев, когда тебе НУЖНО закешировать данные. Если тебе это НЕ НУЖНО, значит их НЕ НУЖНО кешировать. Что тебе, лоботомированному имбецилу здесь не понятно?
Решение требуется для конкретных задач и запросов. Если у тебя есть какой-нибудь vk, ты ведь не будешь каждый раз при открытии страницы с сообщениями загружать всю историю всех сообщений от всех пользователей за все годы ваших переписок? Ты загрузишь только те, которые пользователь увидел, значит эти сценарии должны обрабатываться и под них нужно находить решение. Если у тебя пришло сообщение, ты снова всю историю переписки будешь грузить за последние 10 лет? Блядь, я не могу поверить в то, что я вообще тебе это все объясняю.
Тебе НЕ НУЖЕН кеш? Ну и блядь хули ты меня спрашиваешь, как тебе реализовать кеш для того, чтобы этот кеш никогда НЕ ПРИМЕНЯТЬ.
Ты все задачи и все решения просто хаотично применяешь в случайном порядке, или ты все таки сначала задачу себе ставишь и потом начинаешь думать над ее решением? Тебе нужны актуальные данные всегда? Тебе нужно их обновлят вживую? Сколько у тебя пользователей? Сколько запросов? Сука блядь сначала сформулируй вопрос, а потом уже задавай его, а наоборот, пиздец
>чел, ты выдумал какой-то уникальный пример, я за всю жизнь не встречал идиотов, которые на уровне бизнес требования и дизайна позволят вот так просто задвоить данные и клонировать 10 вкладок!
>
>Ладно! Хорошо! Каюсь, может быть такие и оправдано!
>Мне нужно спроектировать сайт на моей spa-тильде и для этого я накинул 10 блоков с корзиной на главную страницу - 10 запросов улетело на сервер
>
>Ради этого подключат технологию и оптимизировать 0.00001% русурсов сервера? Чел, почитай что из себя представляет современное железо, ты из тех кто оптимизирует сортировку внутри массива из 100 элементов?
>
>
>Протыкал все популярные сайты, от казино, до игр и букмекерских контор с графиками под крипту, никто не занимается такой чепухой, все запрашивают свежие данные с бекенда
Сука, больное, дегенеративное животное.
Ты задал вопрос - для чего нужен query? Для тех случаев, когда тебе НУЖНО закешировать данные. Если тебе это НЕ НУЖНО, значит их НЕ НУЖНО кешировать. Что тебе, лоботомированному имбецилу здесь не понятно?
Решение требуется для конкретных задач и запросов. Если у тебя есть какой-нибудь vk, ты ведь не будешь каждый раз при открытии страницы с сообщениями загружать всю историю всех сообщений от всех пользователей за все годы ваших переписок? Ты загрузишь только те, которые пользователь увидел, значит эти сценарии должны обрабатываться и под них нужно находить решение. Если у тебя пришло сообщение, ты снова всю историю переписки будешь грузить за последние 10 лет? Блядь, я не могу поверить в то, что я вообще тебе это все объясняю.
Тебе НЕ НУЖЕН кеш? Ну и блядь хули ты меня спрашиваешь, как тебе реализовать кеш для того, чтобы этот кеш никогда НЕ ПРИМЕНЯТЬ.
Ты все задачи и все решения просто хаотично применяешь в случайном порядке, или ты все таки сначала задачу себе ставишь и потом начинаешь думать над ее решением? Тебе нужны актуальные данные всегда? Тебе нужно их обновлят вживую? Сколько у тебя пользователей? Сколько запросов? Сука блядь сначала сформулируй вопрос, а потом уже задавай его, а наоборот, пиздец
>Спрашиваешь зачем? ну это оптимизация, помощь бекам, а что если Вася отправит 1000000 запросов мы спасем прод!
А зачем вообще оптимизировать что либо? Переписать за пару дней 100 строк кода? Нет, пусть себе пользователь в два раза оперативку увеличит и мы новый сервак поднимем. Но что-то мне подсказывает, что если у тебя код не оптимизирован, то он волшебным образом при этом хорошо написан не будет?
Чел, вся твоя аргументация сводится к тому, что если я не хочу вносить в проект очередную говно-библиотеку, то я хуевый
Ты сам подтвердил, что такие оптимизации с кешем нужны не на каждом шагу, ты не смог придумать реальный кейс из своей практики, а выдумал небылицу! Я не смог найти сайты где используют кеш для api! совпадение?
Использовать на всякий случай чтобы когда-то пригодилось? зачем? Уверен что она висит у тебя мертвым грузом и ты нихуя ее не используешь, а если и используешь то она никому не помогает даже на долю процента (изучи современные возможности серверов)
> А за такое в приличном обществе по рукам бьют.
Тыскозал? Чел, погугли что такое лоннполлинг для начала и бенефиты его использования перед реалтайм транспортом.
>Сука, больное, дегенеративное животное.
Я другой анон, встрял что бы вы джунов не научили говну
А то сейчас облепите их 100 либами "на всякий случай может пригодится"
react-query не нужен в 99.9999% случаях
Я выпиливал эту парашу из 3 проектов, она всегда висела там "на всякий случай"
https://vuejs.org/guide/essentials/lifecycle.html#lifecycle-diagram
при смене темы, меняется фон картинки(Lifecycle Diagram
)?
В светлой теме фон у картинки светлый. В тёмной - тёмный. Но картинка одна и та же. Ето как?
Подозреваю, что дело в .png, но не могу понять, как нагуглить.
> Чел, вся твоя аргументация сводится к тому
> аргументации
Тебе показалось, тебя не воспринимают серьёзно. Ты давишь всех своей узколобостью.
> Ты сам подтвердил, что такие оптимизации с кешем нужны не на каждом шагу, ты не смог придумать реальный кейс из своей практики, а выдумал небылицу! Я не смог найти сайты где используют кеш для api! совпадение?
Да, он тебя пытался воспринимать серьёзно >>3003, но даже он сдался.
Мой тейк в следующем: если твоя работа не отличается от работы версталы с минимальным использованием JS. который и фулкекер дёрнет при необходимости, а вёрстку можно вынести на шлепальщика красивых анимированных йоба интерфейсов за 80к, то зачем тебе платить в 3 раза больше?
>Использовать на всякий случай чтобы когда-то пригодилось? зачем?
Научись читать, что тебе писали. Ты вроде понял, что тебе писали, а вроде опять переспрашиваешь.
react-query входит в пакет redux toolkit, если и он там "на всякий случай" был, то не понятно что ты там тогда выковирывал. Видимо просто решил НЕ НУЖОН ЭТОТ РТК. Ну ок, ебитесь там сами со своим проектом, я на нем не работаю
>redux toolkit,
Зачем использовать эту хуйню когда существует как минимум 5 альтернатив? это та блядская хуйня в которой еще встроен костыль в виде immer?
Это пнг, там прозрачный фон
>Зачем использовать эту хуйню когда существует как минимум 5 альтернатив?
>выбираем любую из 6 альтернатив
>почему мы выбрали 1 из 6 альтернатив, а не 1 из оставшихся 5 альтернатив
Я сижу в треде коррекции? Все, у меня жопа сгорела
>Если у тебя есть какой-нибудь vk, ты ведь не будешь каждый раз при открытии страницы с сообщениями загружать всю историю всех сообщений от всех пользователей за все годы ваших переписок
Сейчас провалился в историю переписки, загрузились 10 последних сообщений сообщений , еще 10 сохранились на всякий случай, но не отобразились! перешел во вкладку музыка, вернулся во вкладку сообщений, снова открыл этого же пользователя, кеш не сработал, UI запросил 10+10 сообщений с сервера! ГДЕ ТУТ НАХУЙ КЕШ ТВОЙ? В ТВОЕМ ЖЕ ПРИМЕРЕ!
А ты бы у себя в проекте начал бы все это кешировать? удачи пользователям с 4гб оперативной памяти, кэшировщик хуев
Стал бы разруливать логику самостоятельно? Удачи превратить кодовую базу в сгусток дерьма
Соевые атеисты.
С каких пор php 6.0 устарел? Большинство проектов на нём
С каких пор jquery устарел? Большинство проектов на нём
Есть альтернативы,
https://github.com/pmndrs/zustand
https://xstate.js.org/
https://mobx.js.org/
но их больше
Так и в чем смысл-то этих альтернатив еб твою мать блядь? Просто чтобы не редакс? Это как с хейтерами реакта, давайте не будет использовать реакт - а зачем? Ну потому что это будет не реакт.
Если бы они взяли и написали проект с полного нуля и называли его toolkit то ноу проблем, получили технологию которую можно расширять!
Но эти пидорасы написали костыль для говно-редакса и создали обертку под это говно, холопы схавали этот фантик за новую технологию, но под оберткой все то же тормознутое кривое говно
>Почему меня должно ебать что там лежит в исходниках
Schlop Schlop Schloppa, the wild Form'o'Schloppa
Там есть аналог жс треда?
Закиньте им базу - намбер прототайп и пипы, спросите, тип что за хуйня и как это работает.
Чет нихуя не смог сбросить, Анон.
Вообще не понял.
10 разных отрезков кода используя сервирворкеры-кеши, нихуя.
Фотки как подгружались из кеша так и подгружаются.
Мог бы еще раз подсказать для тупых. Гопота один и тот же ответ генерит.
Есть /wdg в /g
Но вообще на форче уровень дискуссий ниже, чем тут. Америкосы тупые + много индусов всяких и южных американцев.
>Как сбрасывать кеш юзера жыесом?
Никак. Настраивай e-tag на своем серваке. Ну или кешируй/инвалидируй сразу руками через SW
>Он
Кто он то блять? Это вебпак медленный пиздец, особенно на больших бандлах за счет его архитектуры, в которой он в обязательном порядке должен собрать вообще весь бандл, а не используемые его части
белым людям из страны первого мира нахуй не нужно учить программирование что бы иметь достойный уровень дохода. Это всякие чинг чонги, сноу ниггерс (читать жители СНГ) и индусы этим занимаются.
>почему-то
Потому что там нет кода, который за инвалидацию отвечает?
поговорил с мастером троллинга тупостью
>хотел по умному сделать
Если бы действительно хотел, то начал бы свой высер с указания заголовка Cache-Control
>Потому что там нет кода, который за инвалидацию отвечает?
Я со всего тырнета насобирал эти куски, не стукай.
Должны делать инвалидацию, даже гопота два варианта сгенерила.
>>3180
Я в кастомный перехватчике добавлял эти строки.
Но т.к. тупой, решил у Анонов спросить и увидел более изысканное решение с сервисворкерами от Анона.
Но т.к. тупой, применить, похоже, не смог.
>>3187
Пока нихуя не понял, но почитаю.
>со всего тырнета
Дурачек, нахуя ты впитываешь мусорную информацию? Вот тебе подробнейшая, официальнейшая документация с примерами:
https://www.w3.org/TR/service-workers/
>Я в кастомный перехватчике добавлял эти строки.
чего блять??? Ты на своем бэкенде должен задавать Cache-control и e-tag метки для инвалидации. Задашь их правильно - необходимость костылей с SW отпадет сама собой.
>более изысканное решение с сервисворкерами
С каких пор дристание ЖСом для достижения функциональности, которая появилась до твоего рождения в HTTP 1.1 явялется изысканным?
>Пока нихуя не понял, но почитаю.
Зато уже побежал говнокодить сервис воркеры. Айти 2023, итоги.
Отправляет тебя в прошлое.
Применяется просто: читаешь на жс, излагаешь в слух на нулях и единицах.
>Для тех случаев, когда тебе НУЖНО закешировать данные. Если тебе это НЕ НУЖНО, значит их НЕ НУЖНО кешировать.
Другой ищет как помочь бекенду чтобы его не загружать
как же ебут фронтов
как же ебут фронтов!
Я наоборот переубедил бэкера в том, что кеш нужен, потому что его сранный бэк 3 секунды может данные с бэка возвращать, выглядит как говно, тормозит, некрасиво, не плавно. Я хочу чтобы все работало плавно и красиво, потому что я шиз, даже если клиенту похуй
Как же ебут фронтов
"у меня на крыше дырка, я не буду жаловаться в управляющую компанию, просто поставлю тазик, потому что мне приятно находится в сухом помещении!"
Какая дырка? Оптимизация запросов это само собой разумеющяяся часть работы с фронтом. У тебя данные вообще статичными могут быть, зачем их каждый раз заново тянуть?
Ты там 2 часа медитировал после моих ответов, чтобы наконец поменять линию аргументации, и теперь зайти со стороны chad/virgin отношений?
Всего лишь одна из топовых компаний мира. Там 90% я уверен просто рандомно резюме рассылает, даже не глядя куда. И сколько по твоему из 850 в теории тех собес бы прошло? Я могу вот прямо сейчас на все сеньерские позиции за 500к сек разослать резюме, что с того?
>Там 90% я уверен просто рандомно резюме рассылает, даже не глядя куда. И сколько по твоему из 850 в теории тех собес бы прошло?
>most are people laid off from FAANG, or people at unicorns, and they all have several years of experience.
Первым делом должны быть произведены оптимизации на уровне транспорта, потом база данных потом кеш на беке, потом структурные оптимизации и настройка мощности сервера и если после этого происходят лаги, то можно идти к господину фронтовику на поклон и просить его исправить проблему, фронтовичек в ответ помогает беку и сообщает о возможных последствиях связанных с инвалидацией кэша
Вас ебут в гриву, ленивые бекендеры ничего не делая сразу кидают задачу на фронт
Ты реально не понимаешь что кеш на фронте это костыль, а не решение реальной проблемы?
Не должен падать бек в 2023 от х2 запросов
Ну или там оффер на 1кк далларов в год. Опять же все это даже не со слов ХР, а со слов того, кто слышал слова ХР без пруфов
Он и не падает, просто я не хочу делать новый запрос. Это просто не логично, вот просто потому что я так решил, нахуй нужен лишний запрос там, где он не нужен?
Ну а что НИПРАВДА, если там офер реально высокий, то и больше откликов можно собрать
Ты не понял суть посыла. Суть не в том, что там 1к маняайтишников, а в том, что там БОЛЬШИНСТВО это разрабы, имеющие реальный опыт работы в фаанге.
Так если там офер высокий, то в этом ничего удивительного и нет. А если средний по рынку, ну тогда ладно
>Он и не падает, просто я не хочу делать новый запрос. Это просто не логично,
Логично, там могут быть новые данные ты можешь проебаться, собрался играть в русскую рулетку?
Знаю. Часть из этих людей выпизднули на улицу и сейчас они с умениями дрочки бинарных поисков и прочих sparse-table'ов готовы рвать и метать, что бы устроится хоть куда-нибудь шлепать формы для оплаты кредита за их MtF surgery.
Я не понял. Оффер - это сумма, которую тебе предлагает работодатель по результатам собеса. Откуда там он возьмется если никого еще не собесили? Или ты реально думаешь, что сейчас кто-то указывает вилку в вакухах?
Да пусть покажет сначала оригинальный пост с вакансией. Мы тут пол треда обсуждаем какой-то безпруфный пост с реддита
>>3225
>>3233
У меня бекендер - мудак, который на форме из трех полей, которая была в десятках других страниц возвращает два из трех полей.
Который когда вернет мне третье поле, оно блять сломано какой-то лишней валидацией.
>>3248
>>3203
>чего блять??? Ты на своем бэкенде должен задавать Cache-control и e-tag метки для инвалидации. Задашь их правильно - необходимость костылей с SW отпадет сама собой.
Ок, спрошу у бека по поводу кеша.
Думаю вариант с ?hui=1 пока отложу.
> Задашь их правильно - необходимость костылей с SW отпадет сама собой.
Я вчера первый раз попробовал в ком. проекте эти воркеры сервесные, лол.
Как по мне круто выглядят.
>С каких пор дристание ЖСом для достижения функциональности, которая появилась до твоего рождения в HTTP 1.1 явялется изысканным?
Без шуток - выглядит по умному.
Честно, у меня достаточно расплывчатое представление как работает связка бек-фронт-кеш.
>Зато уже побежал говнокодить сервис воркеры. Айти 2023, итоги.
Ну, у меня все просто.
Если можно не тревожить бек, то тревожить бек не надо.
Там не какой-то гигачед помидор сидит, который все проблемы раскидывает и поясняет, обыный хуй-мидл-джун, который тупит как и я. Но т.к. он новенький, тупит пиздец. Каждый раз его выгрузку возвращаю на доработку. Разберется поди, а пока я пострадаю хуйней, т.к. лишний раз шатать бек вообще не хочется.
>вместо того, что бы побазарить с бэкендером начал изъебоваться неебическими костылями с get параметрами и сервис воркерами
Не думал к психотерапевту обратится? Явный недостаток софт-скиллов.
>Не думал к психотерапевту обратится? Явный недостаток софт-скиллов.
Не, с ними все норм.
Просто правда не хочется что-то не беке делать, ну вот прям вообще не хочется.
Я и так страдаю каждый раз после его выгрузок, а тут хуйня, которую сам смутно понимаю.
>не хочется что-то не беке делать
Проблемы индейцев шерифа не волнуют. Ебучий крудошлеп не может шлепануть круд? Бери нового круджошлепа с улицы. Благо их дохуя. Вон из фаанга можете взять, авось не надо будет инвалидацию кеша костылить.
3 бека, один фронт - я.
на данный момент 2 бека на других проектах, так же помогают периодически тому, с которым я работаю на данный момент.
фронтом только я командую. больше никого и нет, лол.
пытался удалить весь кеш.
в т.ч. фотки, ксс, жс.
ксс, жс - похуй, а вот фотки что бы я не делал все равно грузятся из кеша.
да, можно не ебать мозги и обратиться к беку, возможно он понимает о чем речь.
но если он не поймет, заебашу ?hui=1 и забью хуй, 100% это решение сделаю вечером, вот прям уверен, слишком тупой для сервисворкеров, хуй знает почему перехватчик с ноу-кеш не работал.
он, как я понял, редко к ним обращается.
т.к. базовый функционал, который я делал с прошлым беком, куда-то периодически пропадает на новом, типо у файлов мандатори поля куда-то делись, какие-то ебанутые параметры появляются.
А ты то почему должен изъебоваться? Иди к тимлиду, пусть либо докидывает ему помощь, либо пусть нахуй на улицу выкидывает.
?hui=1 ?hui=2 ?hui=3
Это наоборот самое лучшее решение, после каждого билда увеличивай хуй на 1 см
при условии если на беке дегенераты и не хотят возится с заголовками
у меня ооо рога и копыта, нет тут лидов, помидоров.
сам по себе хуйней страдаю. никто не доебывает, главное формочки делать и все.
бек - новенький, надеюсь, что разберется со временем.
т.к. прошлый бекендер отзывался о беке проекта как о чем-то очень страшном и старом.
А без кеширования я каким образом данные новые получу? В моем случае: есть обнова > пришло по вебсокету > рефрешу часть данных, которые указаны в вебсокете
В твоем охуительном варианте без кеша пользователь должен периодически Ф5 прожимать, охуенно. Лучше я их закеширую и обновлю когда надо. А по ф5 данные все равно свежие придут (те же, что и были), если уж тебе так неймется, ну или все прям совсем-совсем пошло по пизде, ну так уж и быть, нажмешь ф5. Проблем никаких не вижу
ты читал что я написал ниже? "при условии если на беке дегенераты и не хотят возится с заголовками"
функционал для этого уже есть. писал ранее для обновления фоток при изменении элемета.
но посчитал, что сброс всего таким способом - хуйня полная.
вот и решил у анонов уточнить как получше сделать.
Лучше заместо подобных изъебов и капчевания читай про Cache-Control. Там много интересного, в т.ч. эксперементального. Потом на собесе расскажешь и в нормальную контору вкатишься, а не на на рога и копыта свои.
Хорошо, посмотрю.
Ты не говорил про сокеты, ну тогда вот так -
1) Грузишь данные с сокетов при первой init
2) Обновляешь страницу - снова грузишь данные с сокетов на мужика
3) Возвращаешься на страницу - Снова грузишь данные с сокетов на мужика
4) Далее простаиваешь на страницуе при событии обновы - грузишь данные с сокетов на мужика
Это будет работать быстро, потому чел на бекенде обязан создать кеш и управлять им сам, а не гонять 10 строчные SQL на каждый чих с фронта
Хорошо представим что у вас бомже пентиум на сервере и нужно поэкономить баблишко кабана
1) Грузим с реста по init
2) Грузим с реста по f5
3) Грузим с реста по возвращению на страницу
4) Простаиваем на странице - слушает сокеты и если произошла йоба-обнова, то снова грузим с реста на мужика
Тут вообще нет кэша, кэш должен быть на беке, а бек должен уже сбрасывать кеш и перехуячивать при первом запросе (то есть будет один неудачник которому придется подождать 3 секунды вместо 0.01s)
чем этот способ плох???
в таком случае все должно летать, при условии если бекендер сделает у себя кэш, ну не может с кеша отдаваться более 1 секунды, это просто отдача текста
Уверен что у вас хуесос даже ключи не расставил вот и лагает
Читай третий абзац в этих >>2780302 → >>2780324 → постах пока не дойдёт. Также гугли что такое economic cycle / business cycle. Ты просто вообще абсолютно не понимаешь почему сейчас такой мёртвый рынок найма в США и почему он был диаметрально противоположный несколько лет назад, и почему он снова таким станет.
На чем лучше сосредоточиться - задачки решать или охватить больше технологий и концепций?
Вкатунец, всё это реализуется чисто через заголовки cache control, if none match и etag. За НОЛЬ строк жс.
Он изначально порешан гопотой. Просто дрессированая обезьянка показывает фокусы.
Ну сам хатаб всё, а вот дело его живет и даже получило новый виток развития после некоторых событий, датированных 24 февраля 2022 года.
А зачем тебе про версия?
А зачем тебе покупать винду? Её можно бесплатно поставить.
Я неиронично, я нитролль. До этих недавних тредов в /b/ с долбоёбами на семёрке, у которых стим (хромиум зависимый) остановит поддержку спермеров (как и хромиум собственно), я даже и представить не мог, что до сих были мамонты, которые считали, что windows 10 нельзя бесплатно поставить и полноценно пользоваться. Ну, конечно если, смысл пользования системой не заключался в том чтобы натягивать обои на рабочий стол. Ведь это единственные недоступные настройки на бесплатной 10-ке. Всё. Никаких более ограничений.
И вместо этого они там прыгают по XP SP3, 7, 8, хуярч[, чулочки[, раст]].
Да даже имея возможность видеть рабочий стол, я его вижу только сворачивая все окна и рестарте раз в много дней.
Даже сворачивая все окна, если мне нужен ярлык на рабском столе - я автоматом его протыкая не обращая внимания на фон.
))))))))))))))))0)000
>В официальном магазине xatab'a windows 11 pro бесплатная.
>А зачем тебе покупать винду? Её можно бесплатно поставить.
Да ты буквально соевый дурачек из мемов.
Да нет, вместо того что поставить официальный образ ты идёшь ставить ни разу не перекодированный ничего не вырезанный образ, в котором от дефолтных настроек в виде домашних страниц и настроек реестра может быть какая угодно хуйня в виде майнера.
Начиная с тебе нравится моя сборка вин 10? ну тогда перейти на мою домашнюю страничку, дурашка, поддержи проект самый безобидный сценарий в сборках самого популярного автора по версии rutracker.org
>Да нет, вместо того что поставить официальный образ ты идёшь ставить ни разу не перекодированный ничего не вырезанный образ, в котором от дефолтных настроек в виде домашних страниц и настроек реестра может быть какая угодно хуйня в виде майнера.
Может. Но мне ли не похуй, если мне нужно просто проверить отображение верстки в эдже? Заодно не будет блямбы в правом нижнем углу о необходимости активации.
Хатаб окуклился. Даже если предположить что в пиздючестве я доверял сборкам от хуя_нейм, это не распространяется на фантомных продолжателей идеи. Сегодня он продолжает, завтра его переклинило. Даже оригинальный хуй_нейм от такого не застрахован.
Можете брыкаться сколько хотите. Никто не мешает разрабам всунуть майнер в жопу, соглы. А хую который занимается модификациями это по определению проще сделать. Он нарушил целостность продукта уже просто тем что влез туда.
Всё, похуй на вас. Съёбываю. Обмазывайтесь там хоть black box эдишенами.
Именно. В репаках хатаба даже зондов от разрабов не было, в отличии от оригинальных образов.
>Сегодня он продолжает, завтра его переклинило. Даже оригинальный хуй_нейм от такого не застрахован.
А хатаб то тут причем? Он в отличии от майков не вкидывал рекламу и анальные зонды в свои раздачи.
Хатаб при том, что хатаба нет
Его нормально не поддерживают уже года два. Он тормозит пиздец на больших проектах. И самое главное, создатели реакта в официальной документации заявляют, что рекомендуемые способы создать реакт приложение - это либо некст, либо вит.
>лет 15 назад была популярна сборка windows XP ЗВЕРЬ by Vovan, какой же кринж такое видеть в 2023.
Ну а что делать если по дефолту кринжа больше в официальном образе винды, чем в порезанном образе от VasyanNagibator228
В каком смысле, есть какой-то плагин?
Алсо, как чекать сафари? Был какой-то платный ресурс где можно онлайн эмулировать сафари, есть у кого-нибудь ссылка? Может уже бесплатный способ есть?
>Что за сообщение, можешь дать ссылку?
Ты бы ещё через полгода спросил, чтобы я не только не имел ссылки на другом железе, но и не вспомнил даже.
>Переделают и выпустят новый апдейт, не? Проект же не закрывают.
Как переделают, тогда и приходите. Сейчас у CRA 127к установок в неделю из npm, 117к которых приходятся на 5.0.1
Из них, это наверняка, некрофилы и обучащиеся по всяким курсам и статьям
Тебе для сравнения, установок:
@reduxjs/toolkit - 2.6M
react-redux - 6.8M
next (NextJS) - 4.6M
Вот тебе issue в репо CRA, где чел заподозрил, что что-то не так с CRA и его нигде нет.
https://github.com/facebook/create-react-app/issues/13072
И далее ссылка на длиннопост от Дэна, в PR react.dev с предложением заменить КРЯ на vite.
https://github.com/reactjs/react.dev/pull/5487#issuecomment-1409720741
>В каком смысле, есть какой-то плагин?
Чел, гугл хром это тот же эдж. Там один движок рендеринга и один движок жс. Что ты там хочешь тестить?
>Алсо, как чекать сафари?
Заходишь на свой servicedesk и заказываешь макбук, эмулируешь.
Лул, как же я проигрываю с местных обезьянок, которые мне год назад с ебалом пикрелейтед доказывали, что CRA это не легаси и хороший инструмент по сравнению с витом.
А потом у тебя даже шрифтов не хватает стандартных и получаешь квадраты на ебало. Это не говоря про отрезанные службы, которые не выключены, нет. Их просто нет, удалено. Хех. Уж хоть на арч или дебилиан пересели бы тогда, клоуны. А нет, игры же нужны. Ну да... игро-дебилы с шапочкой из фольги...
Всё всё, съёбал окончательно. Ябитесь
>Это не говоря про отрезанные службы, которые не выключены, нет. Их просто нет, удалено. Хех. Уж хоть на арч или дебилиан пересели бы тогда, клоуны.
Какие нахуй службы для теста одного только браузера? Ты бухой что ли?
Я даже репаки от хохлов качаю.
Настолько мне похуй.
Сломаю комп ну и сломаю, похуй. Переустановлю и делов-то.
Единственное чем злоумышленники-васи могут поживиться - парой гигов мемов и сотней гигов формочек.
Твой браузер никому не нужен. Это даже не сафари, чтобы заморачиваться из-за этого. Поставь, блядь, уже хром и успокойся. Если бы ты хоть раз открывал таблички совместимости, то заметил бы интересную тенденцию, что если фича Х нигде не работает, но работает в хроме, то работает и в Edge.
Если только ты не упоротый дегенерат, которому нужны pre-chromium версии Эджа, которые остались на ранних билда 10-ки. Но их эдж на своём движке нахуй никому не был нужен, просто потомок ишака.
Я надеюсь, что это всё-таки не твой кейс, и тогда можно просто пойти на сайт майкрософт и поставить официальный образ. Абсолютно бесплатно. Помешает ли тебе ватермарка об активации протестировать сайт? Я уже склоняюсь к варианту, что помешает. Как плохому танцору яйца.
>Ребята, а как мне протестить свой сайт на эдже?
>Твой браузер никому не нужен. Это даже не сафари, чтобы заморачиваться из-за этого.
Хотя несомненно, геморрой создаваемый сафари не стоит того, чтобы была возможность его поставить в 2 клика загрузив с сайта/поставив из стора.
А ведь его ещё и поставить нельзя...
>Рекламу в вебе будут смотреть больше людей и приносить разрабам больше денег
>Веб разработка все?
Ты недалекий?
Если ты умеешь в вебпук, то в вит вкатишься без особых проблем. А вот в обратную сторону так не работает.
Справедливо.
вебпак - если проект будет сложный и вангуешь что там будет много плагинов, много кастомизаций, если нужна стабильность
vite - если делаешь очередную детскую поделку из стандартного набора (css js ts jpg png fonts)
vite плагины сложней css это всегда "мы находимся в стадии тестирования, не используйте версию в проде"
>Если ты умеешь в вебпук, то в вит вкатишься без особых проблем.
Не вкатится, потому что на любой пук ему придется читать тонну текста уровня "Ну мы еще разрабатываем этот плагин, пока эта функция не поддерживается"
>vite плагины сложней css
Как будто webpack плагины сложнее css являются production-ready решениями с активном поддержкой. Один хуй приходится свой велосипед строить под каждый кейс что на вебпуке, что на вите.
>>4066
>мы еще разрабатываем этот плагин
Я подразумеваю под вкатом собственное написание лоадеров и плагинов. То, что ты накачал кучу готовых непонятных решений в свои node_modules не является вкатом в сборщики.
Если ты используешь сборщик, ты уже не программист
Я подразумевал разработку проекта на C++ >> WASM
Ты дальше что с твои кодом на C++ делаешь после его написания? Как его запускать будешь? Ни одна платформа чистый c++ не переваривает.
Понял, спасибо!
>>3885
>Чел, гугл хром это тот же эдж. Там один движок рендеринга и один движок жс. Что ты там хочешь тестить?
Команды разные, ориентирование на рынок разное, приоритетные продукты разные и много чего другого. Очевидно, что все равно надо проверять.
Вот недавно попался threejs продакшн проект очень серьезный, который, внезапно, не работает в firefox, но работает в chrome.
https://technology.panasonic.eu/av-digital-world/corporate-education?_ga=2.234201562.530243368.1690462948-37775468.1689857962
Там в консоли какая-то ошибка об использовании деприкейтед функции.
Так что проверять надо все, если делаешь что-то сложнее лендоса.
>Заходишь на свой servicedesk и заказываешь макбук
Я собираюсь фрилансить и, пока что, могу позволить себе заказать только пустую коробку из-под пиццы.
>То, что ты накачал кучу готовых непонятных решений в свои node_modules не является вкатом в сборщики.
не знание С++ не является вкатом в разработку веба
Каждый уважающий себя разработчик обязан знать C++\RUST
Ты собрался делать сайты без этого?
>не работает в firefox, но работает в chrome.
Речь про эдж идет. ФФ имеет другой движок рендеринга и другой жс движок, в отличии от эджа.
>Каждый уважающий себя разработчик обязан знать C++\RUST
Вкатун, ты утверждаешь, что человек, использующий собрщики не явялется программистом. Так вот я тебе задаю вопрос: что ты будешь делать, когда напишешь код на C++/RUST.
даю подсказку - запускаешь сборщик, который собирает все твои модули и компилирует все это дело в (W)ASM
>Я подразумеваю под вкатом собственное написание лоадеров и плагинов.
Ты мне говоришь, что нужно писать свои плагины и лоадеры
Я с тобой соглашусь и добавляю, что эти самые плагины нужно писать не на JS, а используя C++\rust
Если ты этого не делаешь, то не стоит вкатываться в плагины и лоудеры, не мучай жопу как говорится
даю подсказку - не умеешь, даже не заикайся о плагинах на js
>что эти самые плагины нужно писать не на JS, а используя C++\rust
>Я подразумевал разработку проекта на C++ >> WASM
Мне даже добавить нечего.
>Мне даже добавить нечего.
Взял 2 сообщения от 2 анонов и сравнил их, а почему не от троих?
Мне даже добавить нечего
Я другой анон, который говорит что без знаний rust даже не смотри в сторону разработки
Не знаю как работают движки внутри браузеров, но уверен, что если в движке сделали поддержку какой-либо фичи, то она автоматически без доработок появляется во всех браузерах, которые работают на этих движках. Во-первых у движков есть версии, во-вторых есть модульность. И, думаю, множество других аспектов наберется.
>Во-первых у движков есть версии, во-вторых есть модульность. И, думаю, множество других аспектов наберется.
Так и есть. Но эдж построен не на движке а на уже готовом браузере, поэтому версии движков тут не играют никакой роли
роутинг через реакт роутер, вся привычная и базовая ебала со свичами и роутами, роуты определены в одном компоненте, условный App, компоненты отдельных страниц резолвятся через react lazy
А в чем проблема пойти к кабану и получить необходимый тебе для выполнения работы которое подразумевает получение прибыли для кабана инструмент?
Ни может таково быт!
Вот же (правда не пробовал):
https://gfn.ru/ - можно играть бесплатно пол часа в свои игры. Но нужно ждать очередь. Не смог найти возможности запустить просто комп с сафари, такого там, наверное, нет.
https://drova.io/ - здесь можно арендовать комп за 30 р. в час. Но там можно установить клиент только на 7 винду. А у меня Дебиан. Наверняка там есть возможность арендовать комп с макос.
Даже фотошоп уже бесплатный есть, основной функционал доступен, но всех функций для профессиональной работы там скорей всего нет.
Поэтому где-то должна быть возможность снять мак на час, имея любую систему.
>>4741
Жизнь заставляет уйти во фриланс, но я теоретически не против. Надоело тратить время на тесты и не хочется расти в сеньёра фронтенда, который целыми днями должен отчитываться, ревьювить код, инструктировать джунов и т.д. . При этом времени на развитие как разработчика не останется. Конечно, там могут ждать доли в фирме, а могут, и, скорей всего, ждать не будут. В любом случае рано или поздно нужно свое что-то делать.
Постоянные доебы с необходимостью зарегистрировать акк, неотключаемые анальные зонды, постоянные доебы с заshitНиком винды, который ключается сам по себе.
У тебя в ИДЕ зонды. Или ты емаксом пользуешься?
> зарегистрировать акк
Пришлось пересесть на вин11, нихуя не просит.
Даже на 10-ке не просило, на которой я сидел с 2016-го. Что ты там делаешь-то?
>который ключается сам по себе.
Мне бы твои проблемы.
>У тебя в ИДЕ зонды
Да мне до пизды, они хотя бы не грузят цпу до 100 на моем личном некроноуте.
Тогда соболезную.
860x360, 0:07
Я много лет сижу с локальной учётной записью, проблем нет. Дефендер не отключаю, зачем? А на зонды похуй, они всё равно везде. Мы живём в мире победившего Клауса Шваба.
Мидл? Сколько лет опыта? Как там у них эта позиция называется, ведущий разработчик? А сеньор это старший? Или наоборот? Сам хочу туда попробовать, не знаю сколько денег просить.
Если мидл то проси от 200 до 280, выше я бы не рисковал
Если сеньер, то от 280 до 350 смело
(пиздеж про то что там платят 500к, по крайней мере фронтам)
Это чистыми? Плюс отдельно бонусы, премии? Я манясеньор, опыта лет 6, хотел 300 чистыми просить. Раньше думал это пиздец как много, а теперь это жалкие 3к с небольшим зелёных. Хотя на некоторых собесах жестоко попускают алгоритмическими задачами, так что даже сейчас 300к просить как-то неловко.
Чистыми ну еще какая-то 13 зарплата будет по процентам с мутными формулировками
знакомый рассказывал что в фронтовом чате там около 700 рыл, лол
300 легко дадут помидору
А вот когда сидел на вскод, такого не было...
Я видел эту штуку, просто интересно, это роутер делает или скрол просто сам по себе на месте остаётся?
А как ты умудрился уебать дефолтное поведение реакт роутера - ресет скролла при навигации?
Я вообще без понятия, почему то скролл вот так себя ведёт, что происходит хуй знает, реакт роутер 5.2 . Может быть и не в роутере дело, но в чём я хз
Как это все раньше работало на 2-4Гб рам? Сейчас одна только телега может есть около 2-3 гигов, просто месенджер, а раньше на таком же обьеме крутилась ОС + Игра какая-нибудь
>>4929
Раньше у меня был квадрат 1024х768, и всё было прекрасно. Я даже не думал о том, что кому-то где-то надо 60 фпс. Даже не знал, что мне нужно 60 фпс.
А сейчас в минимальном сетапе 2х1920х1080@60
Шторм крутит процессы ноды, если его развернуть. Наверняка там некроговно с бебпаком на дохуиллион строк, и всё это хот-релоадится пересобирается.
Хром. Ну, во-первых, у тебя дохуя вкладок.
Во вторых, девтулзы таки довольно тяжёлые, вангую у тебя девтулыз в нескольких вкладках.
В третьих, всё ещё те самые хот релоады от общение в с вебпук дев сервером.
Если имеешь ограниченные ресурсы - менеджи эти ресурсы. Закрывай ненужные вкладки. Они имеет свой оверхед, даже если ты уже и забыл про них.
Я по ссылке прохожу, в ручную дергать уже пробовал ему пахую, все равно вниз скачет
гпт говорит норм, но я ему не верю
Это минимально жизнеспособный сетап, да. Моники начинаются от фуллхд.
Хотя на запасной пеке стоит 1366х768, для анонимного скроллинга нормально. Но попадались сайты где болт кладут на ширину меньше 900. Отдельно попадались сайты где пидорасит на брейкпоинте в 768, а масштабированием работает.
Интерфейсы можно в один файл с самим стором объединить и называть их более явно. Например не State, а QuestionsState, QuestionsActions
> пик 1
question: IQuestion[]
[] | IQuestion[] нихуя не делает, IQuestion может быть пустым массивом.
> HuetaType
Если ты хочешь маркировать типы, делай префикс THueta. Это распарсить быстрее, чем в GovnoMochaZalupaReceivedSpaceXTeslaType
> NewAnswerType
регистр
> points: number
Либо поинт единственное число number, либо points: number[]
> пик 2
oy wey moya redux
Напомните, почему реакт заадоптил эту хуйню с редьюсерами и бесконечными свитчами?
>Напомните, почему реакт заадоптил эту хуйню с редьюсерами и бесконечными свитчами?
Так реакт не адоптил бесконечные редюсеры и свичи. Это уже юзеры не придумал иничего лучше, чем писать бесконечные switch case
2,3 - пофиксил
4. points это типа очки, там от 1 до 15 может быть
1. а как прописать тайпсы стейту если изначально он пустой, при рендере компонента туда фетчатся данные если все норм, возвращается сейт с масивом?
Одна хуйня. Для асинхронщины тебе в любом случае нужен другой стейт-менеджер. Можешь, кстати, попробовать написать что-то подобное. Потом на собесе расскажешь, интервьюерам обычно такое очень нравится.
> points это типа очки, там от 1 до 15 может быть
Используй score: number
Он более явно отражает что ты там ждёшь в данном случае.
Поинты могут быть как точками в пространстве, так и HitPoints, ManaPoints, так и points в значении очков.
score - очки, счёт.
>1. а как прописать тайпсы стейту если изначально он пустой, при рендере компонента туда фетчатся данные если все норм, возвращается сейт с масивом?
useReducer принимает вторым параметром исходное состояние.
Может быть что-то типо:
const [state, dispatch] = useReducer(reducer, { question: [], state: "loading", index: 0, answer: null })
// do something here
// state.questions.length ? state.questions.map ...
// dispatch dataReceived
>state: "loading"
Подобная логика официально deprecated с 29 марта 2022 года. Зачем ты вкатунов учишь устаревшим технологиям?
Ну ты это, хоть показал бы как надо. В доке нет deprecation метки, в отличии от пик2.
Вот они, все параметры на месте, слева направо:
useReducer(reducer, initialArg, init?)
> Подобная логика официально deprecated с 29 марта 2022 года. Зачем ты вкатунов учишь устаревшим технологиям?
До сих пор не понимаю о чём ты, благо слез с редаксовый иглы примерно тогда же.
>В доке нет deprecation метки
Чел, буквально официальная дока. Тебе даже уже компонент готовый запилил что бы ты не говнокодил своими if (isLoading) { return ...} if (isError) { return ... } return ....
Ну так про загрузку уже написали выше. И анон ответил что тренится.
Я написал пример инициализации с описанным интерфейсом.
Вопросы?
Да, надо было оставить абстрактную хуйню вида
const [state, dispatch] = useReducer(reducer, initialState)
Точно было бы понятнее.
>Вопросы?
Нахуя ты учишь вкатунов неправильному подходу?
>const [state, dispatch] = useReducer(reducer, initialState)
Речь не про твой ебучий диспатч, а про то, как работать с асинхронным состояниям в 2023 году. Если ты этого не знаешь, то и не учи других.
Раз такой умный, давай отвечай на свой придуманный вопрос, умник хуев.
>Вопрос был в другом.
>тайпсы стейту если изначально он пустой, при рендере компонента туда фетчатся данные
Вопрос был БУКВАЛЬНО в асимнхронном состоянии. Читай ветку с самого начала.
>Подобная логика официально deprecated с 29 марта 2022 года.
Я тут мимопроходил, не совсем понял, какая логика официально deprecated? Можете прям в доку ткнуть
С релизом 18 рякта (29.03.2022) официальный подход к работе с асинхронностью - suspense. Поэтому все ваши rtk query, thunk, apollo мгновенно превратились в легаси говнище.
>разве он используется не для того, чтобы бандл на чанки порезать
Открой доку и читай выделенный абзац.
Да да, пришёл, навонял, ушёл. Самоутвердился. Никто кроме него, коненчо же, суспензы не использует.
Обосрал, не то что не выдавил хотя бы сниппет на 5 строк, не выдавил ничего кроме suspense.
Браво, пошёл нахуй.
>Никто кроме него, коненчо же, суспензы не использует.
Именно за счет этого у меня оклад больше 300к с опытом разработки в полтора года, пока вы шлепаете useEffect'ы на каждый пук.
>не то что не выдавил хотя бы сниппет на 5 строк, не выдавил ничего кроме suspense.
Сниппеты на 5 строк есть офф доке рякта.
>Именно за счет этого у меня оклад больше 300к с опытом разработки в полтора года, пока вы шлепаете useEffect'ы на каждый пук.
А ТЫ ЛЮБИШЬ ЧЁРНУЮ МАГИЮ? Потому что именно магический подход ты и предлагаешь.
>Сниппеты на 5 строк есть офф доке рякта
Пиздешь, 3 строки на пике
Иди формочки за 300 клепай, шлёпа.
>мне не нужны конкуренты
Поэтому предлагает сразу брать Suspense.
САП ДВАЧ, ХОЧУ ВКАТИТЬСЯ ВО ФРОНТ, ЧТО УЧИТЬ? НИКОГДА НЕ КОДИЛ
@
НУ КОРОЧЕ БЕРЁШЬ dive into python ДОКУ РЕАКТА, TAILWINDCSS, И ТЫ ГОТОВ
@
А КАК ЖЕ HTML, CSS, JAVASCRIPT?
@
ВЕРЬ МНЕ, ЛЮК, СРАЗУ В РЕАКТ
> Бояться конкуренции вкатывальщиков во фронт из JS треда.
> Трясётся, потому что может только клепать формы
Проиграл, спасибо.
>может только клепать формы
Ну вот полтора года назад я только и мог что клепать формы, сейчас уже ебашу сложный фронт на PIXI. Так что твой наброс уровня "нихуя не может кроме шлепания форм" не актуален.
Ну то есть с остальным ты согласен, что утверждая, что не хочешь конкурентов, ты заставляешь их заниматься поверхностным изучением.
Что и требовалось выяснить.
В остальном, рад за тебя.
>ты заставляешь их заниматься поверхностным изучением.
Это ты начал сразу учить вкатунца хуячить костыли просто потому, что он выбрал неправильный инструмент для решения своей задачи. Это и есть поверхностное обучение.
Поверхностное обучение, это шлёпать саспензы, не зная какую проблему они решают. Как и вкат по схеме фреймворк => js & co, а не html, css, js вёрстка простых шаблонов на ваниле => фреймворк. А потом мы не знаем как остановить всплытие события и что такое это мистическое делегирование событий.
Всё, короче, иди спрайты вращай.
>а не html, css, js вёрстка простых шаблонов на ваниле
Ну так че ты ему тогда говоришь шлепать экшены в редьюсерах за место шлепания лэйаутов на гридах?
Ты доебался со своим js html css, до этого речь шла по рякт и управление асинхронным состоянием внутри него.
useMemo(() => вычисления со стейтами -> hui2, [
ссылка_на_редакс_стейт_1, ссылка_на_редакс_стейт_2]). Просто часто так делаю, через useMemo, что бы создать зависимости для переменных.
useMemo сипользуется для мемоизации тяжелых вычислений. Я почему-то очень сомневаюсь, что у тебя там внутри алгоритм со сложность O(2^N), поэтому отвечая на твой вопрос:
>Нормально ли, что бы сделать зависимость, обернуть вычисление в useMemo
Нет, не правильно.
Дополню:
>что бы сделать зависимость
Зависимость и подписку на изменения этой зависимости ты уже сделал вызвав useSelector.
useSelector несколько раз вызывается к разным стейтам. Потому что будет ворнинг на useSelector((state) => {return {a: state.a, b: state.b}});
И? У тебя компонент зависит от стейтаА и стейтаБ, соответственно ты подписываешься на стейтА и стейтБ. Что не так то?
Ясно, можно просто const hui = statA + stateB; и будет на каждое изменение любого стейта, изменятся hui. Спасибо.
Suspense работает с промисами. Подумай сам, в какой момент ты можешь запихнуть Promise.all
ну если допустим форма на 100500 полей, и внутри сортируются массивчик какой нить, не то чтобы это сложное вычисление, но на каждый рендер дергать такое себе. Ну ещё для стабилизации ссылок можно использовать
ватерфол это что
Thanks for the ride.
TY TY
пис лав
Перекатывайте сами
Окей, перекачу следующий.
не уходи
>форма на 100500 полей
и? Если у тебя на каждый пук в такой форме происходит ререндер - читай про изоляцию ререндеров.
Неужто вкатился на 200к+?
я смотрел как там сделано, проблема в том что не могу его концепции заюзать на 100% (fetch as you render итд), и тащить его в проЭкт тоже не собираюсь, да и вроде бы там нет какого-то общего уровня где происходит инвалидация, всё распылено на отдельные хуки и их зависимости
я другой анон скорее всего, про что ты не секу
Так я тогда не понимаю, что ты хочешь сделать? Что за кеш? Где он хранится? Почему не достаточно встроенных свопособов инвалидации? (etag/замена названия для immutable и т.п.)
Кеш нужен чисто на уровне фронта, в нём тупо данные ЖС, хранятся они в самом приложении (так надо), активен кеш только на опр. связанных страницах, т. е. в рамках некоторого контекста, при выходе за границы контекста или наступлении события он должен инвалидироваться, весь или частично.
не хочу тащить в проект, не выглядит как достаточная мотивация. Если смогу закодить компактно то что я навелосипедил то будет замечательно
Так кто тебе говорит, что что-тол надо тащить в проект? Сам подход переиспользуй, т.е.:
каждый запрос имеет свой уникальный ключ, по которому получаешь/записываешь/инвалидируешь кэш.
так я так и делаю, НО лишь частично ибо запрос не стартует во время рендера, а это налагает ограничения на применимость подхода, и в результате получается геморно т. к. инвалидация кеша по сути не является сигналом к ререндеру компонента и реактивации запроса. Инвалидировать и тягать запрос нужно явно по месту где наступает событие. Не думаю что понятно объяснил, но что есть то есть
>установи редакс тулкит, так как ты уже никто не пишет
Из 2020 капчуешь? Редакс сейчас только в легаси энтепрайз дерьмище. Все уже перекатились на зустанды, МСТ, ряхт квери, аполло и подобное
Я тебя не понимаю. Можешь пример кода привести или в пэинте нарисовать поэтапно что у тебя есть и что ты хочешь получить?
Не, в 2023 в районе половины новых проектов с ртк пишут, среди старых ещё больше процент.
> зустанды
Сколько проектов на нём, 1-5%?
> МСТ
5-10% проектов
> ряхт квери, аполло и подобное
Первое популярно, а вторая графкл параша на любителя не слишком часто встречается
>в районе половины
В 2024 будет уже около 20%. Технология умирает, в ближайшем будущем все будут использовать либо серверные компоненты, либо всякие ряхт квери.
Серверные компоненты не отменять глобал стейт менеджмент. Рякт квери просто альтернатива ртк квери и swr.
>глобал стейт менеджмент
Зустанд/мобикс в глобал стейт менеджменте выигрывает почти по всем параметрам у редуха.
>Рякт квери просто альтернатива ртк квери
Вообще нет, лул. Ртк квери это совсем базовый менеджер для асинхронщины, useSWR и квери намного более функциональные.
Нормального управления кэшем. Как видишь по постам в итт - проблема оказалось куда актуальнее.
Способности не превращаться в легаси сразу после написания кода
Этот бедолага в 2020 вкатился, и окуклился. Мозгов для рефлексии не хватает. Уже который тред пишет "а чо ни так с ртк" или "чо не хватает ртк", получает струю мочи в ебло, затыкается, и ждёт, когда в следующем треде можно будет че нить про редакс высрать
Причина баттхёрта? Я не фанат ртк, но у меня на двух работах в нескольких проектах везде он, и никаких серьёзных проблем с ним нет. На личных проектах у меня аксиос + реакт квери + зустанд.
Блять, чел. Оно там есть, но оно ХУЖЕ чем у его аналогов. Точно так же там нет суспенса, нет возможности создавать твои миддлвары на лету, нет возможности получить уже полученные данные другим квери.
>На личных проектах у меня аксиос
Имагинировали ебало автора пет проектов на сверхсовременном стеке axios + rtk query?
Да я сам щас на двух работах это дерьмище разгребаю. В команде с такими же окуклившимися. До этого два года работал с нормальными библиотеками и редаксовский кал не трогал, сейчас задыхаюсь нахуй...
Аксиос + реакт квери. Что не так? Ты в реакт квери аксиос передаёшь в качестве хттп клиента.
https://pastebin.com/qFawP9wM
короткий пример, может содержать любые ошибки.
1 - обрати внимание, что запрос не происходит во время рендера. А когда наступает событие, не связанное с рендером, нужно не только инвалидировать, но и запросить снова.
2 - обрати внимание на количество шаблонных абстракций в zalupa. И это только один запрос, без логики.
3 - инвалидация и запрос это два отдельных действия, может быть ситуация когда мы находимся в контексте кеша, нам приходят данные, мы инвалидируем, НО данные хотим запросить только когда заново вернемся на страницу
>обрати внимание, что запрос не происходит во время рендера. А когда наступает событие, не связанное с рендером, нужно не только инвалидировать, но и запросить снова
Пойди ка доку реакта наверни, чтобы такую хуйню больше не писать
Ты вызываешь getZalupa в useEffect, эффекты в реакте отрабатывают после того, как реакт построил свой VDOM (реактовский рендер), и определил набор инструкций для обновления DOM. Используя useEffect ты НИКАК не сможешь вызвать эффект во время рендера. Если бы ты не был тупым долбаёбом и внимательно читал доку, ты бы знал это, и не высирал эту хуйню. Сдрисни нахуй, ты не осилишь сделать свой аналог react-query. Возьми его и не еби мозги сучий сын
Делай механизм подписки в своём убогом аналоге react-query, делай подписку в теле функции-компонента, до return. В useEffect при анмаунте компонента делай отписку, когда происходит отписка - определяешь на что компонент был подписан, делаешь инвалидацию кэша. Думаю это максимум что можно сделать в твоём шизофреничном вкатунском кейсе.
Потом ебись с этим говном сам, если по какому то чудесному стечению обстоятельств у тебя есть работа. Потому коллеги тебе ебло разобьют сука
>Используя useEffect ты НИКАК не сможешь вызвать эффект во время рендера. Если бы ты не был тупым долбаёбом и внимательно читал доку, ты бы знал это, и не высирал эту хуйню.
ну... да, а как это относится к моему примеру поясни? Мне нужно ещё раз: уменьшить дублирование кода, вызывать запросы там где я их вызываю, и иметь возможность их инвалидировать где хочу. Похую где чё вызывается
Да, лучше. Она будет идеально вписываться под твою задачу и занимать в 10 раз меньше места. Вопросы?
>Ещё больше кода
Пиздец. Одна строчка - подписка в теле функции-компонента, на месте твоей ебучей useZalupa, другие 4 - эффект с анмаунтом вместо твоего ёбаного zalupa.getZalupa. Не представляю, как ты это осилишь, обезьяна
Вот тебе на коленке собранный прототип. Вызывай метод fetch когда тебе угодно (тут - в момент создания инстанса, если он еще не фетчит), делай нормальный ioc, а там уже и до увольнения по профнепригодности тебе далеко, потому что не додумался взять готовое решение
axios идеально вписывается под все задачи. С ним можно легко работать с query параметрами, не делая свои костыли, легко типизировать, не воюя с ебучим Response.json() -> any, легко обрабатывать ошибки, и написать простой интерцептор, вместо того чтобы костылить свой баганный механизм для простого рефреша токена при 401 ошибке.
Какой весь то нахуй? В ахиохе нихуя нет из коробки, всё приходится самому дописывать.
>не может установить query в url, не может написать дженерик в одну строку и создавать свои кастомные ошибки.
Бля я даже отвечать на это не буду. Ну и пиздец, айти 2023, итоги
return в getState потерялся, ну да похуй.
Я могу это всё делать, мне нахуй не надо это делать из раза в раз начиная новый проект.
В нормальной организации надо работать, а не шлепать каждый день новые проджектс в ООО Рога и Копыта
Да даже если сука раз в десятилетие у меня будет новый проект, нахуя мне надо блять вообще что то костылить с этим фетчем ебучим? Тебе занятся нечем? У твоей "нормальной компании" тасок нет?
>что то костылить с этим фетчем
Ну давай, расскажи что там тебе придётся костылить?
>У твоей "нормальной компании" тасок нет?
Моя "нормальная компания" делает реальный продукт, а не какое-то говно, собранное на коленке для внутреннего использования.
>вот сын, http клиент
>фууу лишняя зависимость
>сынок, так это же обёртка над фетчем, с убогой api и 1/10 функционала аксиоса!
>омномном
Забыл дописать, что эта убогая обёртка будет весить аж в два раза меньше!!! Профиты очевидны
> а не какое-то говно
> продукт состоит из самописных обёрток для тривиальных задач
Представляю как твои коллеги будут радоваться, когда ты съебнешь
А че бы им не порадоваться? Как в 2019 отказались от ахиоса на пару с поддержкой IE, так в этот код никто не лазил.
Ты обёртку над фетчем самописную делаешь? Нахуя? Ради 11кб? Интерцептинг в аксиосе нужен чтобы прокидываеть токен в Authorization хедер. Или чтобы когда access token expired перехватить запрос с 401 респонсом и получить новую пару access и refresh токенов.
>прокидываеть токен в Authorization хедер. Или чтобы когда access token expired перехватить запрос с 401 респонсом и получить новую пару access и refresh токенов
И это весит 11кб? Слишком жирно.
По той, что ты не читал базу по кнтексту в ЖС. Иди проверь в консольке, если мне не веришь. Создай класс с методом в виде обычной функции и в виде стрелочной, потом сравни поведение.
Устаревший xhr используете вы, а я на современно fetch оказываются гнию на легаси параше? Ок.
это всё хорошо, но в моей версии реакта нету useSyncExternalStore, и я вообще про другое спрашивал. Как уменьшить количесво дубликатов кода в моём конкретном примере?
Напрямую xhr никто не использует. По факту в аксиосе больше функционала, чем в фетче.
Щас он скажет что этот функционал не нужен, надо самому постоянно функционал дописывать
Читал. С обычной функцией должно работать. Просто забавно, как пориджевые зумерки лепят стрелочные функции куда не попадя.
>40 кб либа дает какой-то функционал, которого нет в ваниле
НИХУЯ СЕБЕ!!! ЭТО КАК НАХУЙ?
>По факту в аксиосе больше функционала, чем в фетче.
А аксиос умеет парсить жсон ответ в отдельном треде? А начинать прасить до того, как полностью придёт ответ?
>>6370
>этот функционал не нужен, надо самому постоянно функционал дописывать
Ты пока не предоставил ни одного кейса, который не решался бы 1-2 строками на ванильном жс.
>С обычной функцией должно работать.
Нет.
>Просто забавно, как пориджевые зумерки лепят стрелочные функции куда не попадя.
Еще забавнее, как скуф-вкатун пытается строить из себя прошаренного. Так что лучше не позорься.
Имагинирую как бы ты обосрался на собесе на пикрелейтед элементарной задаче.
ну смотри. У меня по факту 3 слоя: api (конструирует абстрактный запрос и делает фетч), zalupa (инкапсулирует формирование запроса в понимании предметной области, обрабатывает ошибки, делает ещё какие-то преобразования) , и та часть которая к кешу конектится, у меня это клиент. По сути это всё ради одного запроса. А потом ещё есть вещи типа инвалидации запросов на разных уровнях. Я могу клиент куда угодно прокинуть и оттуда инвалидировать, Но если представить что появится ещё один запрос, то мне по аналогии придётся всю эту поеботу хуярить. Изначально я спрашивал, как можно всё унифицировать чтобы сократить эти шаблонные вызовы, в примере они как раз продемонстрированы
ок
Я бы тоже, прям эпичнейший додик.
Спасибо! Пока что не устанавливал, но вроде то, что нужно. Алсо на линукс он тоже ставится.
Парсить джейсон до ответа? Стриминг что ли? Конечно. И в отдельном треде можно.
Винфоношиз в 2023? Ради таких шизов вроде тебя, которых 0.01%, нужно писать свои велосипеды?
>А аксиос умеет парсить жсон ответ в отдельном треде?
Я сейчас затестил и у меня блокируется тред при парсинге, что я делаю не так?
>А аксиос умеет парсить жсон ответ в отдельном треде? А начинать прасить до того, как полностью придёт ответ?
Такого вообще никто не умеет.
Я кстати рили когда-то столкнулся с такой необходимостью в боевой задаче крупного коммерческого проекта.
Ну вот ты понакидаешь в свое приложение ряктов, аксиосов, стейт менеджеров, библиотеку компанентов кабанью и получишь 10 мб.
другой анон
Чел, ты в сутки коммитишь больше чем занимают все либы вместе взятые
Данная практика оправдана только в тех случаях, если ты работаешь с каким-нибудь умным домом, умной лампочкой, контроллером, вот там идет ожесточенная борьба за каждый байт
Даже смешно слушать про килобайты для веба в 2023
Да один шиз в прошлом треде начал, я кстати тоже против такой шизы. но 11кб блоатвары в виде аксиоса тащить в 2023 это моветон
У меня и на биты дроч есть. Ощущаю себя слесарем.
> react 2.5kb
> react-dom 42 kb
> zustand 1kb
> react-query 13kb
> Библиотека компонентов
> mantine 133kb tree shakable UI kit в котором есть 99% необходимого
Лучше свой велосипед писать, который скорее всего будет хуже аксиоса? Это не стоит потраченного времени, плюс новым разрабам сразу понятно всё, если на проекте привычная либа, а не велосипед васянский.
А в твоём велосипеде будет метод onUploadProgress: function (progressEvent) {} ? Ой, это ведь только в легаси xhr возможно...
> на проекте привычная либа, а не велосипед васянский.
@
ПРИШЕЛ НА НОВЫЙ СОВРЕМЕННЫЙ ПРОЕКТ НА АКТУАЛЬНОМ СТЕКЕ
@
ВМЕСТО FETCH ИСПОЛЬЗУЕТСЯ ЛИБА ВРЕМЕН ГОСПОДСТВА INTERNET EXPLORER
ни нижно
>Ой, это ведь только в легаси xhr возможно...
Нет, на fetch'е тоже делается, ведь он работает на современном стандартизированном Stream API, а не на магии единорожков как xhr
Нет, в фетче есть прогресс в стримах.
Собственно, там он лучше потому что данные можно забирать сразу, у XHR ты до конца запроса можешь только текстовое представление брать.
>fetch
Перехват запросов ты как будешь делать на своем fetch? onUploadProgress ты как будешь делать?
throttle ты как будешь делать?
Писать свое? Чем твое лучше чем Axios superagent Ky ?
Пойми, не все делают просто get | post как ты, у многих сложная логика взаимодействия с сервером и Axios\superagent\Ky как раз спасают
>Нет, в фетче есть прогресс в стримах.
Удачи, тут есть тонкости для которых все равно придется взять готовую библиотеку и решить много "но")
>Перехват запросов ты как будешь делать на своем fetch?
НЕЕБАЦА_ПЕРЕХВАТ_ЗАПРОСА(req)
const resp = await fetch(req);
НЕЕБАЦА_ПЕРЕХВАТ_ОТВЕТА(resp);
>onUploadProgress
Тебе уже выше ответили, подними глаза на пост выше.
>Чем твое лучше
Тем что работает на современном api со стримами и весит меньше места
>Пойми, не все делают просто get | post как ты
Да вы только это и делаете, раз никто даже не пукнул про стримы, пока речь про прогресс не зашла.
Какие данные сразу забирать? Мне нужна только цифра, количество загруженных данных, дальше я сам сопоставляю это количество с размером файла и буду рендерить аплоад прогресс.
>НЕЕБАЦА_ПЕРЕХВАТ_ЗАПРОСА(req
опа, это нужно будет положить в какой-то файл и написать под него 10+ тестов? нихуя себе, а чем твой прием тогда лучше? Вся та же обертка
>Тебе уже выше ответили, подними глаза на пост выше.
Ты же понимаешь, что эту задачу не решить в 1 строку, я скинул тебе примерную кодовую базу на коленке, но к ней нужны еще доработки
>Тем что работает на современном api со стримами и весит меньше места
Старые браузеры забыл? Если на то и пошло, я лучше возьму уже оттестированную библиотеку на стримах, чем пользоваться твоей самоделкой
Так ты их можешь отрендерить сразу же, перед самим хттп запросом. Это распространенный паттерн, называется optimistic updates.
>Если на то и пошло, я лучше возьму уже оттестированную библиотеку на стримах, чем пользоваться твоей самоделкой
А такая библиотека вообще есть? Чтобы под капотом был фетч с реализацией аплоад прогресса.
>ReadableStream
с кем я сижу в треде...
Если приходит сложная задача, говорим что ее нельзя решить на фронте и всячески пихаем на бек или просто режем техническое задание, говоря что сделаем полную версию в самом конце проекта
Потом просто увольняемся
То есть ты никогда в своей жизни не открывал спецификацию языка, на котором ты работаешь, не понимаешь, по какому алгоритму определяется this в JS и поэтому пиздишь про магический контекст, который никакого отношения не имеет к this?
2 года назад было: vue react angular
сейчас: svelt solid react angular
потому что зеленый застыл в своём развитии в отличии от синего и его друзей
>Аксиос это умеет.
Прям стримом? Или коллбеками, которые еще надо будет в стрим руками преобразовать?
Потому что для пожилой базы есть ангуляр, для пахнущего пропёрженным свитером энтерпрайза. Для пахнущего пориджем энтерпрайза — рякт, он же для продуктового фронтошлёпства. А для перформанса можно и свелт взять, хотя солид тоже ничего, но он ещё не имеет достаточного adoption.
На vue потихоньку переходят, в б пару месяцев назад фуллстековичок спрашивал "можно ли юзать vue как jquery, без сборщиков"
а vue прям вообще плох?
>какой-то шиз создал тред в /b/
>ЗА ВЬЮ БУДУЩЕЕ!!! ВЫ ВИДЕЛИ? ПРОГРЕССИВНЫЙ ФРЕЙМВОРК ПРОГРЕССИРУЕТ! ВИДЕЛИ, ДА?
Ты ебанутый? Ветку почитай
Я обосрался. Можно только через responseType: 'blob'. А вот responseType: 'stream' только на бекенде работает.
Ну вообще-то воспринимают, ты похоже по своему манямиру судишь
добавь еще в этот график jquery, по графику сразу станет понятно что jquery обгоняет всех и вся
>воспринимают
Судя по скрину - вуй на пару с ангуляром стагнируют, пока рякт и свелт набирают популярность
Да нет, все растут.
Это ебучие пики масштаб портят и нихуя не понятно.
Реакт быстрее, остальные плюс-минус одинаково. Но кажется это эффект высокой базы, на логарифмической шкале наверное всё по-другому будет выглядеть.
Надо каки-нибудь графики получше чтоб разглядеть.
Рякт ростет явно быстрее. Он вон ~30% год к году, когда у вуя от силы процентов 10
ПЕРЕКАТ npm remove axios >>2786577 (OP)
ПЕРЕКАТ npm remove redux >>2786577 (OP)
ПЕРЕКАТ npm remove @tanstack/react-query >>2786577 (OP)
</Suspense>
Удивитесь, но vue только у клоунов аля студия на php, а все остальные фреймворки используются у респектабельных компаний
Да, гитлаб использует vue, они страдают из-за клоуна который затащил его туда много лет назад
Терпила озон использует вуй
Ну хуй знает
>Мы пишем на TypeScript и Vue, шаблонизируем на JSX, для тестов используем Jest и Playwright...
Откуда инфа?
Нашёл только две вакансии, вот одна из них:
https://job.ozon.ru/vacancy/razrabotchik-javascript-marketpleis-antifrod-83025303
> Наш стек: React, TypeScript, Redux (Redux Toolkit), Jest
> Redux (Redux Toolkit)
В голосину!
На вуе 3 это ваще почти тождественно реакту из-за композишн апи
https://github.com/vuejs/babel-plugin-jsx
у меня 16 одной плашкой с магаза пришло. похоже нужно вторую докупать.
>>5083
>Я даже не думал о том, что кому-то где-то надо 60 фпс. Даже не знал, что мне нужно 60 фпс.
Помню как-то к товарищу пришел в сосничестве, у него там игрулка какая-то была, фпс 15-20 было, зато какой графон!
>Хром. Ну, во-первых, у тебя дохуя вкладок.
+-8 вкладок обычно. 3 мертвые, в которые захожу пару раз в день, остальное двач и работа.
>Если имеешь ограниченные ресурсы -
Да проще железо докупить.
Я на ноуте из прошлой эпохи вкатился, там реакт минут +- 3 минут компилился полсе сохранения, ангуляр и все пять мог.
Думал вот возьму ноут за сотку - все летать будет.
А после как на шторм пересел, подлагивания какие-то появились.
>>5362
У меня 8 было, но там диск хдд убитый был полностью.
Ты написал, что чел не знает базу про контексты в вопросе про this. Как связаны определение this и контекст?
Хватит троллить тупостью.
>It determines the binding of the keyword this using the LexicalEnvironment of the running execution context.
Я писал код в vime, у меня были расттавлены приорететы на расход оперативки, потом просто earlyoom поставил. Ну и очевидно фигму и проект одновременно не открыть поэтому деалал скрины.
Это копия, сохраненная 16 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.