@react_js

Страница 107 из 5115
Tim
16.05.2016
07:26:25
Как пример можно приписывать дату к объектам при добавлении их в стор. И при критическом объеме стора, вычищать старые объекты.

S
16.05.2016
07:26:51
да и какую дату? я например могу старые сообщения смотреть

если только сделать какую то обертку и делать mapStateToProps через нее

Google
S
16.05.2016
07:27:42
и записывать ts маппинга

S
16.05.2016
07:40:31
Угу
А расскажи ваше датафлоу с данными, как их подчищаете

храните ли все сообщения нормализованными?

Nikita
16.05.2016
07:43:57
Ох, там сложно) у нас есть сервер, есть протокол и клиентская либа на Java, которая под платформы компилится. Там вся работа с данными и проходит

S
16.05.2016
07:44:23
мне сервер не интересен

что делаете, чтобы за неделю работы с открытым табом, браузер не сдох)

Nikita
16.05.2016
07:48:03
так вот вся работа с данными в библиотеке происходит, а flux+react только отрисовывает, в основном

Andrey
16.05.2016
07:48:21
профилирование и отлавливание утечек памяти?

S
16.05.2016
07:49:31
так вот вся работа с данными в библиотеке происходит, а flux+react только отрисовывает, в основном
т.е. ничего не нормализуете? все сообщения в какой то одной переменной (массиве) хранятся в сторе?

Nikita
16.05.2016
07:49:58
по сути да

в библиотеке достаточно умно переиспользуются все объекты

Google
Nikita
16.05.2016
07:51:39
однако v8 течет, остальные движки еще хуже, так что память - да, это проблема

S
16.05.2016
07:51:40
т.е. например нельзя открыть одновременно вьюхи с двумя чатами?

Nikita
16.05.2016
07:52:20
мм, в приложении такого не предусмотрено. но и зачем такое?

чтобы был split-screen?

S
16.05.2016
07:52:38
да

Nikita
16.05.2016
07:53:28
вообще мы можем такое сделать)

скорее всего, хотя потребуются правки в логике библиотеки. Но не ясно зачем такое

вообще на сколько я знаю, как у нас реализовано. При старте приложения клиент получает все группы и всех юзеров, с которыми есть чаты. При такой логике сообщения скорее всего могут приходить с id sender, а не полным объектом. Ты про эту нормализацию?

S
16.05.2016
08:06:13
я скорее про то, чтобы без боли можно было делать рекурсивные вьюхи (без ограничение на кол-во переменных в сторе, которые хранят мессаги)

Ruslan
16.05.2016
08:14:18
А сейчас react-id как-то узнать можно? В DOM уже не видно, в RDT тоже не нашел

Tim
16.05.2016
08:14:35
Правильно ли я понимаю, что есть такая ситуация. В сторе хранятся сообщения следующим образом: messages: {[id: string]: Message} При этом хочется иметь какой-то мусоросборщик который ограничивал бы максимальное количество сообщений в сторе?

Руслан, зачем вообще может потребоваться знать react-id?

Nikita
16.05.2016
08:27:25
я могу 1 применение точно придумать. react-addons-perf

Ruslan
16.05.2016
08:34:58
Да, изучал лог printOperations, хотел проверить причину изменения атрибутов

printOperations из react-addons-perf

printOperations - это бывший printDOM

в логах есть куча операций типа 993 "202" "remove attribute""["disabled"]" 994 "202" "update attribute""["disabled",false]" 995 "203" "remove attribute""["selected"]" 996 "203" "update attribute""["selected",false]" 997 "203" "update attribute""["value",307]" 998 "203" "remove attribute""["disabled"]" 999 "203" "update attribute""["disabled",false]"

Tim
16.05.2016
09:12:27
Довольно интересная задачка получается (:

У каждого сообщения должен быть счетчик во скольких вьюшках оно используется. При достижении счетчика нуля, необходимо удалить его из стора. Надо будет заморочиться за такую штуку (: Спасибо за идею! Буду думать

Google
Tim
16.05.2016
09:25:07
а тут могут появиться проблемы при превышения максимального размера ls - но это уже совсем другая задача

Nikita
16.05.2016
09:25:41
ну вот у нас такая проблема была как раз)

хорошо бы сразу закладывать асинхронность

тогда можно с localStorage переключиться на indexedDB/WebSQL

Ruslan
16.05.2016
09:29:52
но indexedDB - это IE10+, если это важно

Nikita
16.05.2016
09:30:35
fallback - localstorage

Anton
16.05.2016
09:42:10
Не ограничивал, а подчищал не нужные (которые не используются в UI)
для этого должна быть логика частичного восстановления стейта из внешнего хранилища (стейта), а это в общем случае очень нетривиально делать эффективно. Есть у тебя три сообщения [msg1,msg2,msg3], первое и третье испольуется, второе нет, ты его удалил, потом скролл проехал и внезапно тебе его надо показать. И ты в общем случае не знаешь, сколько их там, почищенных - одно или 800. и таких "дырок" в данных может быть много. и разнообразных данных и коллекций тоже. Оно будет достаточно сложно даже на примитивных данных, не говоря уже о сложном приложении. Подход утопичен, имхо. В качестве оптимизаций в конкретных кейсах можно, но там обычно находятся гораздо более простые варианты. Идея сохранять в ls/indexdb выглядит прикольной но бессмысленной ) неясно, чем там лучше хранить данные чем в стейте аппы непосредственно в js-объектах

S
16.05.2016
09:43:13
для этого должна быть логика частичного восстановления стейта из внешнего хранилища (стейта), а это в общем случае очень нетривиально делать эффективно. Есть у тебя три сообщения [msg1,msg2,msg3], первое и третье испольуется, второе нет, ты его удалил, потом скролл проехал и внезапно тебе его надо показать. И ты в общем случае не знаешь, сколько их там, почищенных - одно или 800. и таких "дырок" в данных может быть много. и разнообразных данных и коллекций тоже. Оно будет достаточно сложно даже на примитивных данных, не говоря уже о сложном приложении. Подход утопичен, имхо. В качестве оптимизаций в конкретных кейсах можно, но там обычно находятся гораздо более простые варианты. Идея сохранять в ls/indexdb выглядит прикольной но бессмысленной ) неясно, чем там лучше хранить данные чем в стейте аппы непосредственно в js-объектах
при скролле данные должны подгружаться с сервера, и восстанавливать себя в сторе

Nikita
16.05.2016
09:43:56
это ты в идеальном мире)

если пользователь отскроллил только что месяц переписки, переключил чат, у заехал в тоннель, и ты ему не показываешь чат - ты идешь в жопу)

> Идея сохранять в ls/indexdb выглядит прикольной но бессмысленной ) неясно, чем там лучше хранить данные чем в стейте аппы непосредственно в js-объектах Все та же оффлайновость

Nikita
16.05.2016
09:46:51
так метеор работает, например. У них внутри фронта мини-монго. И это очень круто

Anton
16.05.2016
09:49:07
> Идея сохранять в ls/indexdb выглядит прикольной но бессмысленной ) неясно, чем там лучше хранить данные чем в стейте аппы непосредственно в js-объектах Все та же оффлайновость
Оффлайновость это другая тема. Там все нужно. А как это помогает чистить стейт от старых и уже ненужных объектов - неясно.

Nikita
16.05.2016
09:49:36
нельзя эти проблемы решать отдельно друг от друга)

есть данные, которые всегда нужны приложению

все юзеры, с которыми потенциально может быть переписка, например

Vladimir
16.05.2016
10:16:08
Я думал над проблемой очистки не нужных данных на клиенте в рамках амелисы. В ней тоже, как в метеоре есть возможность выполнять монго-запросы к данным на клиенте. Пока что мысль дошла до того, чтобы сделать api для удаления данных по монго-запросам, которое дергается из бизнес-логики. Проблема отсутсвующих данных на клиенте решается таким способом - запрос сначала применяется к локальным данным, потом id-шки документов летят на сервер, сервер применяет запрос к базе, вытаскивает документы, сравнивает id-шки, шлёт на клиент разницу. Можно на уровне api конфигурировать для каждого случая - можно ли рендерить сразу (из клиентских данных) или дождаться серверных.

Google
[Anonymous]
16.05.2016
10:18:42
Вот скажите

Кто-то писал биткойн майнер на жабаскрипте?

ENAMETOOLONG
16.05.2016
10:19:34
Майнер?

Anton
16.05.2016
10:20:19
Зачем?

Vladimir
16.05.2016
10:20:24
даёшь биткойн майнер в каждом браузере?

Vladimir
16.05.2016
10:20:26
https://github.com/mappum/webcoin

ENAMETOOLONG
16.05.2016
10:20:41
https://github.com/search?l=JavaScript&q=bitcoin+miner&ref=searchresults&type=Repositories&utf8=%E2%9C%93

https://github.com/mappum/webcoin
разве майнить может?

Admin
ERROR: S client not available

Alisa
16.05.2016
10:31:17
го теперь ethereum майнер в браузере

[Anonymous]
16.05.2016
10:34:52
Стоп

Это же золотая жила

Нынешние сайты и так лагают

Встрой майнер никто не заметит

Vladimir
16.05.2016
10:35:34
это бесмыссленно

[Anonymous]
16.05.2016
10:35:45
Нет

Vladimir
16.05.2016
10:35:48
да

[Anonymous]
16.05.2016
10:36:18
Нет

Alisa
16.05.2016
10:36:28
попробуй)

Vladimir
16.05.2016
10:36:29
бобук ещё год назад говорил, что если запустить майнер на кластере всех серверов яндекса, то намайнится 0, ноль

Google
Alisa
16.05.2016
10:36:50
не обязательно же биток майнить

[Anonymous]
16.05.2016
10:36:51
Стоп

Я про Etherum к примеру

Alisa
16.05.2016
10:37:10
да

Vladimir
16.05.2016
10:37:19
вы думаете что на ваших маленьких сайтах с посещаемостью <1k что-то намайнится?

[Anonymous]
16.05.2016
10:37:29
РЕКЛАМНАЯ СЕТЬ

В баннер же позволяют жабаскрипт

Похуй на клики

Vladimir
16.05.2016
10:38:02
О БОЖЕ

[Anonymous]
16.05.2016
10:38:03
Майнить будет

Vladimir
16.05.2016
10:38:06
не выгорит

[Anonymous]
16.05.2016
10:38:29
ПОЧЕМУ?

Vladimir
16.05.2016
10:39:04
мощности всё равно не хватит

[Anonymous]
16.05.2016
10:39:08
Блин

Почему?

Alisa
16.05.2016
10:39:18
давайте посчитаем сколько нужно мощности

Vladimir
16.05.2016
10:39:18
плюс как ты это через код-ревью протащищь?

Alisa
16.05.2016
10:39:43
я могу засунуть в одно приложение на RN и никто не заметит ;)

[Anonymous]
16.05.2016
10:39:47
Юзать надо вебгл

Можно лоадер написать

Страница 107 из 5115