Бред

Ответить в тред Ответить в тред
Check this out!
Аноним 20/07/21 Втр 19:25:01 2511917741
Screenshot2.png 62Кб, 777x725
777x725
16254229897991.mp4 874Кб, 528x640, 00:00:09
528x640
#React, #JS, #Помощьтупым
При обновлении значения поля, на сервак уходит запрос, включающий это самое значение (valueSell). Потом приходит ответ с числом высчитанным на основе этого valueSell. Проблема в том что valueSell может меняться по нескольку раз в секунду, а значит что может уйти 10 запросов, а последним придет ответ с valueSell из шестого запроса, например. Я бы сравнивал valueSell с которым запрос уходил и valueSell нынешнее, на из-за замыкания оно всегда будет одинаковым.

Подскажите как сделать или где прочитать, плз.
Аноним # OP 20/07/21 Втр 19:27:54 2511919012
16267329469732.mp4 629Кб, 226x400, 00:00:19
226x400
Вот негритянка бъет себя шокером в пах, пока я жду подсказку
Аноним # OP 20/07/21 Втр 19:30:57 2511920493
16253000684160.mp4 1305Кб, 352x264, 00:00:36
352x264
Вот парень тренируется в ожидании тяночки
Аноним # OP 20/07/21 Втр 19:32:16 2511921194
16252576922722.mp4 2524Кб, 576x1024, 00:00:16
576x1024
Ребят, подскажите, плз. А то я уже в четвертое измерение перехожу, нахуй
Аноним 20/07/21 Втр 19:33:26 2511921705
Посмотри в сторону RxJS
Аноним 20/07/21 Втр 19:33:31 2511921746
Я правильно понимаю, для работы всех этих реактивных жс фреймворков надо нахлобучить гору говна на бекенд, которая бы собирала из ошметков здоровенных как слоны фреймворков а так же "плагинов", тянущих за собой миллионы зависимостей некую кашицу, которую уже потом только вставляло в эдакий скомпилированный код, который бы наконец выдавался вместе с ШТМЛ бэкэндом?

Аноним 20/07/21 Втр 19:33:52 2511921937
Аноним 20/07/21 Втр 19:34:00 2511922028
>>251191774 (OP)
Погромисты 300 тыщ наносек сейчас на каникулах в деревнях и дачах. Тебе они не подскажут
Аноним 20/07/21 Втр 19:36:14 2511923299
>>251191774 (OP)
Ебать ты хуйню высрал, братишка. Въеби пивка лучше и не заморачивайся
Аноним # OP 20/07/21 Втр 19:36:56 25119236810
>>251192170
Я правильно понимаю, что для того чтоб обойти замыкание, мне нужно отдельную библиотеку ставить?

>>251192193
Я в курсе что вопрос тупой. Если умнее меня, то скажи че делать.

>>251192174
Вообще там подтягиваются только данные с бэка, по запросам. Но сейчас идет в сторону того что ты сказал.
Аноним 20/07/21 Втр 19:38:17 25119243211
>>251191774 (OP)
Так в чем вопрос то блять, вкатывальщик?
Аноним 20/07/21 Втр 19:38:53 25119246112
>>251192368
>для того чтоб обойти замыкание, мне нужно отдельную библиотеку ставить
Привыкай, формашлепы ток так проблемы решают
Аноним 20/07/21 Втр 19:39:20 25119248213
Аноним 20/07/21 Втр 19:42:51 25119268214
>>251191774 (OP)
перед тем как послать запрос отменяй предыдущий
/thread
Аноним 20/07/21 Втр 19:43:51 25119275115
>>251192432
Как сделать так чтоб гарантированно применялся ответ из последнего отправленного запроса, даже если с сервера он придет не последним?

>>251192461
Когда классовые компоненты были, то это такой проблемы вообще не стояло. Но с функциональными вот такая вот хуета. Я просто не верю что нет нормального способа это порешать, без создания внешнего компонента или установки библиотеки.

>>251192482
Спс, а то я в /web смотрел, а там мертвые все
Аноним 20/07/21 Втр 19:44:38 25119279116
>>251192170
Лол, типикал ответ зумера вкатывальщика

Отменять запросы? Да ну, не
Юзать асинки? Да ну не
Переделать архитектуру, чтоб это не было говнище отсылающие 6 запросов в секунду? Да ну не

А давай лучше еще пару порриджефреймворком наебашим сверху, чтоб размер билда на пару мегабайт вырос
Аноним 20/07/21 Втр 19:44:56 25119280817
Стикер 0Кб, 300x284
300x284
>>251191774 (OP)
Подожди, я правильно понял, что для тебя нормальна ситуация, что valueSell меняется по множеству раз в секунду?

На счет того, как помочь. Честно - не приходилось с таким сталкиваться. Не уверен, что делать искусственную задержку будет корректным решением. Дай мне самому подумать
Аноним 20/07/21 Втр 19:45:27 25119283418
>>251192751
>Как сделать так чтоб гарантированно применялся ответ из последнего отправленного запроса, даже если с сервера он придет не последним?

Так блять складывай промисы в очередь или эррэй и оттуда бери последний блять. Но у тебя приложуха хуита какая то, нахуй тебе нужно 6 запросов в секунду отсылать, шиз?
Аноним 20/07/21 Втр 19:46:50 25119289619
14403222546580.jpg 17Кб, 340x340
340x340
>>251192751
>Я просто не верю что нет нормального способа это порешать, без создания внешнего компонента или установки библиотеки

Аноним 20/07/21 Втр 19:47:08 25119292020
14403228523953.jpg 8Кб, 144x145
144x145
>>251192751
>Я просто не верю что нет нормального способа это порешать, без создания внешнего компонента или установки библиотеки
Аноним 20/07/21 Втр 19:47:36 25119294421
14403236735750.jpg 14Кб, 261x243
261x243
>>251192751
>Я просто не верю что нет нормального способа это порешать, без создания внешнего компонента или установки библиотеки
Аноним 20/07/21 Втр 19:47:56 25119295522
14403226678951.png 48Кб, 200x200
200x200
>>251192751
>Я просто не верю что нет нормального способа это порешать, без создания внешнего компонента или установки библиотеки
Аноним 20/07/21 Втр 19:47:59 25119296023
>>251192682
>>251192368
>Я правильно понимаю, что для того чтоб обойти замыкание, мне нужно отдельную библиотеку ставить?
нет. Замыкание обходится через блок-скопед переменные, либо созданием новой области видимости

var functionsList = [];
for(var i = 0; i < 10; i ++) {
functionsList.push((function(i){
return function() {return i;}
})())
}
console.log(functionList[0]());

var functionsList = [];
for(let i = 0; i < 10; i ++) {
functionsList.push(function() {return i;})
}
console.log(functionList[0]());

Аноним 20/07/21 Втр 19:48:13 25119297824
14403228523920.png 6Кб, 390x470
390x470
>>251192751
>Я просто не верю что нет нормального способа это порешать, без создания внешнего компонента или установки библиотеки
Аноним 20/07/21 Втр 19:48:49 25119301325
14403226678962.png 38Кб, 200x200
200x200
>>251192960
>написал говно
>решение говна

Замыкание обходится через блок-скопед переменные, либо созданием новой области видимости

var functionsList = [];
for(var i = 0; i < 10; i ++) {
functionsList.push((function(i){
return function() {return i;}
})())
}
console.log(functionList[0]());

var functionsList = [];
for(let i = 0; i < 10; i ++) {
functionsList.push(function() {return i;})
}
console.log(functionList[0]());
Аноним 20/07/21 Втр 19:49:09 25119302626
14403242389012.jpg 34Кб, 479x479
479x479
>>251192960
>написал говно
>решение говна

Замыкание обходится через блок-скопед переменные, либо созданием новой области видимости

var functionsList = [];
for(var i = 0; i < 10; i ++) {
functionsList.push((function(i){
return function() {return i;}
})())
}
console.log(functionList[0]());

var functionsList = [];
for(let i = 0; i < 10; i ++) {
functionsList.push(function() {return i;})
}
console.log(functionList[0]());
Аноним 20/07/21 Втр 19:50:40 25119310727
>>251191774 (OP)
Нахуй выбрось и перепиши с нуля. Если у тебя приложение шлет по 6 запросов в секунду на изменение какой то переменной, то написал ты хуйню
Аноним 20/07/21 Втр 19:51:10 25119313028
Стикер 0Кб, 234x250
234x250
>>251192834
Эррэй это самое очевидное решение, но тогда непонятно за какой промежуток времени он должен данные компоновать в массив. Например промежуток в полсекунды. Типо прошло полсекунды, число поменялось 5 раз. Значит массив с 5 промисами. И потом он продолжает также по пол секунды отмерять и следить за остальными промисами? Ну звучит как какая-то хуетень. Я согласен, что это реально хуйня какая, когда значение изменяется быстрее, чем в секунду и приходится это на бэк отправлять.
мимо
Аноним 20/07/21 Втр 19:54:05 25119329729
отменя предыдущий и всё через AbortController
Аноним 20/07/21 Втр 19:56:17 25119339930
>>251193130
а как вариант написать дроссель для эвентов, запускающих запрос на сервер? в итоге на сервер уйдет последний запрос
20/07/21 Втр 19:58:43 25119353831
Аноним 20/07/21 Втр 20:00:23 25119363332
Аноним 20/07/21 Втр 20:03:34 25119381833
Стикер 0Кб, 512x468
512x468
>>251193399
Наверно. Хороший вопрос, на самом деле.

Вообще я вижу лёгкий и тяжелый путь

Лёгкий: использовать abort controller
Тяжёлый: генерировать уникальный id для последнего запроса с фронта и отправлять его на сервер. Приходит ответ от сервера (внутри которого есть этот уникальный id). Потом сравнивается, что если у ответа сервера такой же уникальный id, как у последнего запроса на сервер - значит это ответ на последний запрос на сервер. Как то так. Уверен можно ещё что то придумать
20/07/21 Втр 20:04:32 25119387834
6xiZASxrA8.jpg 391Кб, 1668x1203
1668x1203
Аноним 20/07/21 Втр 20:05:13 25119392535
Стикер 0Кб, 250x231
250x231
>>251193878
А чего ты с сажей пишешь?
Аноним 20/07/21 Втр 20:06:17 25119399636
>>251191774 (OP)
Вот поэтому я всегда говорю местным вкатывальщикам, что начинайте еб вашу мать с ангуляра, не будет таких тупых вопросов.

Абсерваблы блеать придумали втч для этого уже дохуя лет как, а вы до сих пор на промисах как пещерные люди сидите.
20/07/21 Втр 20:06:45 25119402137
>>251193925
Да вкатывальщики заебали просто
Аноним 20/07/21 Втр 20:08:08 25119411038
Стикер 0Кб, 250x241
250x241
>>251194021
Да ладно тебе. Все были такими. Не нужно вонять, что сам таким не был
Аноним 20/07/21 Втр 20:09:08 25119417339
>>251193818
>Наверно. Хороший вопрос, на самом деле.
загугли throttling или debouncing в зависимости от твоей задачи
там реализации на чистом js довольно простые
Аноним 20/07/21 Втр 20:09:37 25119419640
20/07/21 Втр 20:09:57 25119422241
>>251194110
Ну я не писал ебанутые вопросы на дваче, и учился не проходя деньги на мамкины курсы и реально горел профессией, а не потому что "на двачи сказали, что айтишники 300к\наносек получают"
Аноним 20/07/21 Втр 20:10:40 25119426742
>>251194173
Да я не оп. Я просто предложил. Дебаунсинг и тротлинг ему не шибко подойдёт, учитывая, что у ОПа данные меняются меньше, чем за секунду, притом, как я понял, ему нужны все эти данные
Аноним 20/07/21 Втр 20:11:13 25119428843
Всë зависит от того, нужно ли тебе все значения обрабатывать или нет. Можно сделать какую нибудь ебучию паузу, чтобы запросы обрабатывались 1 за 10 секунд. При этом если запрос не обработался, то нех ещë в сервер вливать данные. А так можно построить очередь на сервере.
Аноним 20/07/21 Втр 20:12:11 25119434044
Аноним 20/07/21 Втр 20:15:50 25119453145
>>251194267
>учитывая, что у ОПа данные меняются меньше, чем за секунду, притом, как я понял, ему нужны все эти данные
интересно что это за кейс, где такая логика может использоваться?
Аноним 20/07/21 Втр 20:17:51 25119463346
Стикер 383Кб, 512x512
512x512
>>251194222
У тебя просто не было где можно непринуждённо спросить, в этом вся разница.

Но я согласен, что сосач та ещё помойка для задавания вопросов. Тут иногда шибко умные люди сидят с раздутым чсв. Помню как тут анон искал возможное решение в виде пакета для React Native для работы с фотографиями, а ему сказали мол, "ты дебил, сам не можешь что ли, какие пакеты"? И это притом, что отвечают люди, которые очевидно в сабже не шарят и не понимают, что к bitmap у React Native нет доступа, а библиотека для него (реакт нейтива) пишется с помощью нативных модулей на Java и Swift. И вот такой ответ дать в JS конфе. Ну это просто верх маразма. Помню были ещё случаи, но этот особенно ярко запомнился
Аноним 20/07/21 Втр 20:18:22 25119465147
>>251194531
Если бы мне ОП сам ответил, я бы мог точнее ответить
20/07/21 Втр 20:24:11 25119499548
>>251194633
>У тебя просто не было где можно непринуждённо спросить, в этом вся разница.
Так я на двачи лет 10 назад уже пришел
Аноним 20/07/21 Втр 20:26:53 25119515149
16252579270571.mp4 2299Кб, 576x1024, 00:00:28
576x1024
>>251192682
>>251193297
Вот норм ответ, спс. С костылями и чуть через жопу, но получилось. Сейчас постараюсь нормально сделать.

>>251192808
>>251193130
>>251194651
Есть формы где запрос уходит с каждым изменением поля, потому что вычисления на серваке происходят. Например пользователь вводит число в инпут и после каждого измененного символа идет запрос. А так он может просто рукой провести по клаве и ебануть несколько запросов в секунду.

>>251192834
Ты с реактом не работал, теоретически пиздишь, да?

>>251192960
Спс, но ответ немного не по теме.

>>251193996
Советуй им лучше дрочить меньше. Зрение улучшится и настроение спокойнее будет. Вопрос по реакту, блядь. Нахуй мне твой ангуляр? Блядь, тред не читает, свое мнение сует.

>>251194021
Иди нахуй.

>>251194110
Я мидл, лол. Просто в первый раз такая проблема возникла. Обычно ее через сравнение уходящих и актуальных значений решал. А тут перешел на функциональные компоненты с запозданием.

>>251193399
Спс

>>251194196
Спс, но не совсем подходит к моему случаю.

>>251194288
Нужно было все. Иначе бя я столько запросов не отправлял.

20/07/21 Втр 20:28:20 25119522950
14403228523942.jpg 36Кб, 393x391
393x391
Аноним 20/07/21 Втр 20:29:31 25119528051
Аноним 20/07/21 Втр 20:29:40 25119529052
Стикер 255Кб, 512x512
512x512
>>251195151
>Я мидл, лол. Просто в первый раз такая проблема возникла. Обычно ее через сравнение уходящих и актуальных значений решал. А тут перешел на функциональные компоненты с запозданием.
Ответ не тебе был, но не суть. Я так понял ты ОП. Расскажи что для мидла знать надо?
20/07/21 Втр 20:31:46 25119540053
>>251195290
Знать надо
1) Правило буравчика
2) Как ебать телку в жопу
3) Как ебать телку в рот
4) Как ебать телку в пизду
5) Гена
Аноним 20/07/21 Втр 20:32:16 25119543054
Аноним 20/07/21 Втр 20:33:01 25119546855
>>251195290
Не хочу быть очевидным, но тебе стоит открыть вакансии в твоем городе/области, выбрать свой язык и посмотреть. Если конкретно в моем случае, то HTML,CSS,JS,React,Redux и сопутствующая хуйня в виде Webpack, Git, Figma, Zeplin, Photoshop. Этот минимум. Плюс очень желательно знать английский, там зп больше и требования меньше одновременно. Но щас уже требуют node.js,next.js и так далее.
Аноним 20/07/21 Втр 20:34:39 25119555556
>>251195151
>Есть формы где запрос уходит с каждым изменением поля, потому что вычисления на серваке происходят. Например пользователь вводит число в инпут и после каждого измененного символа идет запрос. А так он может просто рукой провести по клаве и ебануть несколько запросов в секунду.
>>251195151
>Нужно было все. Иначе бя я столько запросов не отправлял.
противоречиво, зачем нужно обрабатывать каждый инпут на сервере, если пользователю интересен результат последнего?
Аноним 20/07/21 Втр 20:35:44 25119561657
>>251195468
>js
>node.js
И че? Это один тот же же кал, нах ты его отдельно выделил
Аноним 20/07/21 Втр 20:35:57 25119563258
>>251195555
Как на серваке отличишь последний от предпоследнего? Запрос стоит на событие onChange.
Аноним 20/07/21 Втр 20:36:04 25119563759
Стикер 191Кб, 512x512
512x512
В общем ответ вроде найден. Юзай АБорт контроллер, ОП. Но если пользуешься axios, то у них немножко другая фегня (axios.CancelToken.source()). Я пошёл спать

>>251195468
А, прикольно. Но в принципе я это знаю, даже чуть побольше. Но я вротендер, для ssr некст не трогал, а сервера испытательные для себя писал на ноде и экспрессе. Тогда балдёж, посеба за ответ
Аноним 20/07/21 Втр 20:36:31 25119566460
>>251195616
Это троллинг такой?
мимо
Аноним 20/07/21 Втр 20:37:13 25119570761
Аноним 20/07/21 Втр 20:39:26 25119582162
>>251195664
>>251195707
>ряяя ето другое
От того что ты у обычного js убрал работу с dom, он не js'ом быть не перестал
Аноним 20/07/21 Втр 20:40:09 25119585563
>>251195632
>Как на серваке отличишь последний от предпоследнего? Запрос стоит на событие onChange
ну так оберни его в функцию с таймером, которая сбрасывает его, если приходит новый евент и делает запрос, если не пришел в отведенный таймаут
так =на сервер уйдет последний инпут
Аноним 20/07/21 Втр 20:41:32 25119592464
>>251195821
По моему ты унылый тролль, либо дебил, который с нодой не работал. Пойду поем
Аноним 20/07/21 Втр 20:44:13 25119604365
>>251195924
Что тебя не устраивает, дурачок? Node это буквально js с чуть чуть другим api, это все еще js
Аноним 20/07/21 Втр 20:45:04 25119607966
>>251191774 (OP)
>valueSell может меняться по нескольку раз в секунду
Ты долбаеб? Зачем? Это хуета с точки зрения архитектуры
Аноним 20/07/21 Втр 20:45:39 25119611067
Наверни ещё с десяток "фреймворков", макака
Аноним 20/07/21 Втр 20:45:45 25119611768
Без названия.jpg 65Кб, 1143x596
1143x596
Боже мой, потом удивляются почему сайты тормозят и жрут весь процессор и оперативку
Аноним 20/07/21 Втр 20:46:25 25119615469
>>251196043
Ок, сразу бы и сказал, что не работал
Аноним 20/07/21 Втр 20:52:52 25119648470
>>251196154
>ты не пынямаешь одной ложкой я гавно ковыряю а другой ложкой я его ем! Разные инструменты!
Ты когда всякую хуйню вроде MVC реализуешь - ты делаешь это все еще в рамках синтаксиса жопа скрипта
Аноним 20/07/21 Втр 20:54:16 25119655471
>>251191774 (OP)
>valueSell
должен быть уникальным
не благодари
Аноним 20/07/21 Втр 20:54:44 25119657772
блять, даже советовать не хочется ничего. 6 раз в секунду блять отправляется запрос, ты долбаеб вообще там? ты нахуй насрал? Или делай такие вычисления на клиенте, или не делай вообще. А если у клиента 5-10мб скорость, сколько он это все ждать будет?
Аноним 20/07/21 Втр 20:57:55 25119675673
6a75d1e030aa67b[...].jpg 25Кб, 300x225
300x225
Юзай АБорт контроллер, ОП. Но если пользуешься axios, то у них немножко другая фегня (axios.CancelToken.source())
Аноним 20/07/21 Втр 20:58:36 25119678574
>>251195468
>Если конкретно в моем случае, то HTML,CSS,JS,React,Redux и сопутствующая хуйня в виде Webpack, Git, Figma, Zeplin, Photoshop. Этот минимум.
сколько плотют за такой набор?
Аноним 20/07/21 Втр 20:59:36 25119684575
Снимок экрана 2[...].png 101Кб, 1184x590
1184x590
Сеньер 300к в секунду в треде
На пике паттерн с флагом в юзеффекте из ДОКУМЕНТАЦИИ.
https://reactjs.org/docs/hooks-faq.html
Через флаг ты можешь определить какой запрос был последний.
Аноним 20/07/21 Втр 20:59:46 25119685476
>>251196785
это минимум реакт разработчика
Аноним 20/07/21 Втр 21:00:05 25119686877
>>251191774 (OP)
у вас там нет чего нибудь по типу debounce из rxjs что ли?
Аноним 20/07/21 Втр 21:04:53 25119715678
1322615842122.jpg 25Кб, 400x400
400x400
Слабенький мидл ИТТ, стейт-машину юзать предлагали? Просто при отправке запроса ставишь стейт "лоадинг" пока не выполнится промис, а при выполнении меняешь на "успех" или "фейл" смотря что вернёт промис.

Я мелкие приложения давно не писал, поэтому у меня в каждом проекте есть редукс, и я там всю эту логику по дефолту реализую через thunk'и и у меня в принципе такой проблемы не может возникнуть.
Аноним 20/07/21 Втр 21:07:17 25119730179
>>251191774 (OP)
не читал тред, есть такая тема как debounce lodash, кушай

Аноним 20/07/21 Втр 21:08:59 25119738280
>>251196756
так зачем юзать аборт, если можно дебаунсить запрос?
Аноним 20/07/21 Втр 21:09:10 25119739081
>>251196845
Бля. Неловко вышло. Спс, буду знать.
Аноним 20/07/21 Втр 22:03:05 25120052582
Аноним 20/07/21 Втр 23:20:32 25120451483
Дебаунс вреале,и трах трахыча не делай тут людям
Аноним 20/07/21 Втр 23:26:42 25120476684
>>251191774 (OP)
>может уйти 10 запросов, а последним придет ответ с valueSell из шестого запроса, например

Ну отправляй айдишник запроса на бэкэнд, и получай назад шелл и айдишник, сравниваешь айдишник и убеждаешься, что ответ именно для этого запроса. Изи.
Настройки X
Ответить в тред X
15000
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов