Juri
Господа, а в чем проблема с iframe у реакта? Чет он не слушается, когда хочу внутрь него по дому нырнуть.
Cenator 🐈
Adv0cat
Vlad
https://easy-peasy.now.sh/
юзал кто?
Andrei
Andrey
Cenator 🐈
Andrei
Потому что тебе держать коннекты нужно только, если ты собираешся часто и много инфы слать, а если ради одного запроса держать целый коннект, то там беку придется попотеть)) Да, по сути ты таким образом ddos устраиваешь собственноручно, но все таки есть нюансы во всех подходах))
подозреваю, что это локальная какая-то проблема, так как в том, что я писал- ререндера нет, а в том, что было до меня- постоянно рендерится.. если вкратце, то я переписываю старый очень код на оптимизированный и новый) разберусь что вызывает бешеный ререндер-отпишу
Iv
ну смотри, физически это обычный то ли get то ли post запрос, но не закрывающийся. Т.е. ты не послал запрос получил ответ и забыл сервер как страшны сон, как например пришел к тебе свидетель иеговы дал буклетик и ушел, а именно создаешь коннект, т.е. свидетель иеговы пришел к тебе в гости и сидит у тебя на диване и вчехляет переодически тебе что-то 🙂
Это всё же более образно получилось.
Мне было б интересно узнать механизм действия. Что программно значит «держать коннект»? Ну, я понимаю, что сервер как минимум должен в памяти держать ip адрес клиента, плюс какой-нибудь номер запроса или как там(мало знаю сетевые технологии, да ещё и плохо помню что знал).
Наверно, слушающему нужно следить (постоянно опрашивать) у себя за каким-нибудь «файлом» в памяти (сокетом? Юникс-сокет это и есть файл в памяти?). Если это верно, то это даёт какое-то понимание, в чём дополнительная нагрузка когда «держишь коннект» (хоть и не ясно, насколько это сильная нагрузка)
Может и не так, и скорей всего ещё что-то происходит
Adv0cat
подозреваю, что это локальная какая-то проблема, так как в том, что я писал- ререндера нет, а в том, что было до меня- постоянно рендерится.. если вкратце, то я переписываю старый очень код на оптимизированный и новый) разберусь что вызывает бешеный ререндер-отпишу
Предлагаю глянуть сразу на то, как рендерятся родители, потому что если ререндер родителя происходит, будет перерендерен и ребенок, так что посмотрите вверх по списку кто перерендеривает 😉
Andrei
Adv0cat короче, разобрался.. есть у меня вот такое кейс от какого-то мудака, который это писал( я тут добавил только маппинг и все, не стал трогать ничего)
if (!state.container) return state;
// execute the calculations only if the view is mounted
let newTranslateX = state.translateX + action.payload.diffX;
let newTranslateY = state.translateY + action.payload.diffY;
const coords = checkTranslateRanges(state.scale, state.container, {newTranslateX, newTranslateY});
console.log(state.translateX === coords.newTranslateX && state.translateY === coords.newTranslateY);
return Map(state)
.set('translateY',coords.newTranslateY)
.set('translateX',coords.newTranslateX)
.toJS();
ну и короче говоря, стейт меняется всегда, даже когда ничего не поменялось
Adv0cat
Adv0cat короче, разобрался.. есть у меня вот такое кейс от какого-то мудака, который это писал( я тут добавил только маппинг и все, не стал трогать ничего)
if (!state.container) return state;
// execute the calculations only if the view is mounted
let newTranslateX = state.translateX + action.payload.diffX;
let newTranslateY = state.translateY + action.payload.diffY;
const coords = checkTranslateRanges(state.scale, state.container, {newTranslateX, newTranslateY});
console.log(state.translateX === coords.newTranslateX && state.translateY === coords.newTranslateY);
return Map(state)
.set('translateY',coords.newTranslateY)
.set('translateX',coords.newTranslateX)
.toJS();
ну и короче говоря, стейт меняется всегда, даже когда ничего не поменялось
Ну вот и замечательно, что разобрались 😉 А то селекторы сразу виноваты 😆
Vlad
Adv0cat
Это всё же более образно получилось.
Мне было б интересно узнать механизм действия. Что программно значит «держать коннект»? Ну, я понимаю, что сервер как минимум должен в памяти держать ip адрес клиента, плюс какой-нибудь номер запроса или как там(мало знаю сетевые технологии, да ещё и плохо помню что знал).
Наверно, слушающему нужно следить (постоянно опрашивать) у себя за каким-нибудь «файлом» в памяти (сокетом? Юникс-сокет это и есть файл в памяти?). Если это верно, то это даёт какое-то понимание, в чём дополнительная нагрузка когда «держишь коннект» (хоть и не ясно, насколько это сильная нагрузка)
Может и не так, и скорей всего ещё что-то происходит
Ну по сути если все упростить, то при создании коннекта, содается инстанс класса, который кладется в оперативную память, вешаются на него слушатели и собственно чем больше коннектов, тем больше в памяти таких инстансов с навешаными слушателями 🙂 И большинство из них просто молчать может, а память жрут)) А обычный реквест это создали пул таких инстансов, соединились, обработали, даже не вешаясь слушателями, отдали ответ и поклали в пул объектов обратно
Игорь
Такой вопрос. Есть компонент пагинации с кнопками и стрелками пролистывания вперёд/назад. Цыфры на кнопках пролистываются с нажатием на стрелки
Когда быстро листаешь вперёд, все ок.
Когда быстро листаешь назад, компонент тупит, глючит нажатие на стрелку назад.
Я так понимаю это из-за механизма проверки виртуал дом? Как это можно оптимизировать?
Andrei
Adv0cat это точно.. спасибо за помощь)
Andrei
Ivan
Игорь
Проблема именно в компоненте с кнопками, и поведения стрелки назад. Дебаунс тогда сделаю
Cenator 🐈
Cenator 🐈
Дебаунс не подходит по ux кмк, лучше при клике добавлять переход в очередь
Игорь
Не-а, данные все на клиенте есть именно для этой таблицы.
Проблема именно в скорости перерисовки кнопок при листании. Вперёд можно кликать как угодно быстро, все ок
А вот в обратную сторону заметно медленнее
Игорь
Данные все в памяти, грузиться одна строка таблицы.
Специально тестирую сам компонент пагинации
Andrei
Cancelable Promise?
не обязательно) да и не желательно, лучше блочить тупо кнопки, так как это правильнее(имхо)
Игорь
То есть, такое ощущение, что при быстром многократном нажатии, компонент не успевает перендериться и тогда происходит глюк при нажатии.
Срабатывает другое событие с другой кнопки на странице
Andrei
Daniil
Кто может помочь настроить реакт для add-in в office?
Adv0cat
アレクサンダー・バキマトフ
Pauline
сек
Daniil
Ivan
на Visual Basic?
Daniil
Имеет)
アレクサンダー・バキマトフ
тогда это какая то дич, простите:D
Daniil
Если бы каждый человек писал, что он не знает ответа, то чат бы флудили жесцко, чего ты выделяешься?)
アレクサンダー・バキマトフ
Daniil
Dmitriy
гайз, а всегда нужно было в styled реакт-компоненты оборачивать для применения стилей?
https://www.styled-components.com/docs/advanced#caveat
アレクサンダー・バキマトフ
Daniil
Igor
парни, работаю над оптимизацией производительности реакт-приложения, возник вопрос - возможно ли предотвратить повторный рендер детей при повтороном рендере родителя?
Kirill
Igor
да, про неё знаю, спасибо, тогда немного перефразирую :) будут ли дети, у которых shouldComponentUpdate возвращает false, рендериться повторно, если рендерится родитель?
Виктория U
Нет, не будут
Igor
Спасибо! И ещё вопрос - при передаче массивов, функций и объектов не по ссылке - в shouldComponentUpdate они всегда не равны предыдущим соответственным значениям в пропсах. Нужно ли вручную предотвращать рендер в таких случаях, или есть ещё какой либо способ?
I
Nikolai
Igor
имею в виду клонированием) т.е. передаётся ссылка на новый объект, если уж совсем придираться)
I
само за тебя приложение не решит, хочешь ли ты перерендеривать в каждой конкретной ситуации
Max
Кто уже за саспенс шарит, как он поможет решить задачу прелодера на кнопке, если промис летит вверх а кнопка внизу?
Roman
Anonymous
Не понимаю 😞 объясните, плиз.
Делаю форму через redux-form.
У одного инпута по вводу должны погружаться название городов и фильтроваться.
Города получаю через api. Где это все должно храниться?
Александр
🐙
Александр
официально только
ну его можно использовать для подгрузки данных, вообще говоря ему пофиг что вы там делаете, данные грузите или компоненты
Anonymous
🐙
хорошо))
получаешь данные -> пишешь в store -> конектишь компонент -> мапишься по данным
Anonymous
Roman
ну то есть конечно можно написать свою поделку, и ее даже делали, но это то что я называю "неофициально"
Александр
Roman
дада, я знаю как оно делается, просто это "не поддерживается официальной докой"
🤴👷♂️🦸♂️🧚♀️
Привет. У меня есть дефолт роуты и роуты через React.lazy. После добавления вторых у меня отвалился роут на всевозможные пути. Как такое фиксить?
Roman