Nikita
https://github.com/electron/electron/blob/master/atom/browser/ui/views/global_menu_bar_x11.cc#L242 — вот это на AboutToShow шлёт LayoutUpdated.
Владимир
Привет! А никому в голову не приходило сделать кастомный билд хромиума для электрона с вырезанными фичами, чтобы уменьшить размер бандла?
Sergey
а что там вырезать?
Владимир
типа https://github.com/crosswalk-project
Anonymous
Какая обвязка над localdb для электрона ок?
Anonymous
Нагуглил пока pouchdb только
Sergey
А зачем обвязка?
Anonymous
ну чтобы "вжух один импорт и имя бд и оно завелось")
Anonymous
я в браузерный жс неособо умею вкатился с react-native
Anonymous
(куда по долгу службы с нативной мобильщины пришел)
Nikita
(куда по долгу службы с нативной мобильщины пришел)
websql есть из хрома вроде выпиливать не будут
Sergey
/top@Axenia_Bot
Sergey
/help@Axenia_Bot
Владимир
а что там вырезать?
ffmpeg, webrtc, сервисворкеры, ftp-клиент
Sergey
сервисворкеры врятли вырезать можно
Sergey
но остальное вполн
Sergey
это же модули
Владимир
Наверняка еще там понапихано всякого. Во, webgl.
Sergey
вырезать webgl сложнее будет
Sergey
врятли всё это сильно уменьшит размер электрона
Sergey
надо бы issue им кинуть, чтобы задумались над этим мб добавят флаги для кастомной сборки электрона
Nikita
народ, если бы вам надо было остановить музыку в системе, как бы вы это релизовали?
Nikita
в osx это itunes, через apple script самый простой вариант, но мб есть проще?
GG
Через shell !?
Nikita
ну не, apple script проще)
Vlad
ну это vendor specific solution
Vlad
равно как и шелл
Sergey
Но к сказал Владимир выше, это для каждой системы надо делать отдельно
Anonymous
Ребят кто нибудь знает как решить ? Даю команду из render процесса на чтение большого файла в main процесс, пока main процесс читает файл chromium висит
Anonymous
fs.readFile !?
Anonymous
я использую базу nedb
Дмитрий
При чем здесь nedb и файлы?
Дмитрий
Nedb это json storage
Anonymous
ну хранит она все это дело в файлах
Дмитрий
На сколько у тебя большая база?
Anonymous
ну 500 элементов секунды 3-4 отдает
Дмитрий
Может тебе больше подойдет sqlite?
Дмитрий
Nedb вся базу в память грузит а потом выборки делает...
Anonymous
да фиг с ним с этим nedb, пусть отдает сколько угодно долго, мне бы понять как сделать это неблокирующе, чтобы chromium не вис пока main процесс работает
Anonymous
sqlite с асинхронностью плохо дружит
Anonymous
у тебя наверно асинхронно что-то выполняеться
Anonymous
ну по идее у меня все должно асинхронно выполняться
Anonymous
ну тык, вот и причина)
Anonymous
Сергей ты работал с electron ?
Anonymous
нет, с node js работаю
Дмитрий
Попробуй читать через settimeout 0 , что бы не блокировать render loop)
Anonymous
Сергей ты работал с electron ?
Серёга у нас монтр. Он шарит ))
Anonymous
Привет Серёга, к стати )
Anonymous
привет. Ну electron же на базе node js + chromium
Anonymous
походу меня тут вообще не понимают =( electron запускает 2 процесса хромиума и главный процесс где нода крутится
Anonymous
и работа в одном процессе не должно по определению блокировать что то в другом
Anonymous
но оно блокирует отсюда и проблема у меня
Anonymous
chromium по идеи только отображает, noda управляет, chromium ждет ноду, а у тебя там асинхронщина, chromium ждем ноду пока она из бд все прочитает
Anonymous
попробуй сделать синхроно через колбек
Anonymous
ты путаешь понятия
Дмитрий
chromium по идеи только отображает, noda управляет, chromium ждет ноду, а у тебя там асинхронщина, chromium ждем ноду пока она из бд все прочитает
Нет ты не прав, рендер процес зависит от мэйна, и блокировка мэйна также заблокирует рендер
Vlad
мимокрокодил: воркеры?
Anonymous
Владимир, поясни пожаллуйста=)
Vlad
обычно чтобы не блокировать мейн используют воркеры
Anonymous
посоветуешь либу ?
Vlad
нет
Vlad
в вебе это webworkers (IE), serviceworkers
Vlad
в электроне не знаю как
Sergey
походу меня тут вообще не понимают =( electron запускает 2 процесса хромиума и главный процесс где нода крутится
Нет Есть render процесс это хромиум, а есть main - это электрон Ты что-то не в том процессе запускаешь. А так юзай воркеры или не запускай render процесс пока не загрузится пачка твоих данных
Владимир
как ты вообще процесс заблокировал? там не асинк апи?
Anonymous
Вообщем немного разобрался в ситуации. чтение из файла бд из main процесса проиходило моментально, блокировался render процесс при передаче в него через webContent.send этих результатов.
Anonymous
при этом если передавать эти результаты через глобальную переменную на стороне chromiuma: require('electron').remote.getGlobal('data').results то все передается моментально
Anonymous
почему же webContent.send очень сильно съедает оперативку и виснит =(
Sergey
Ну не надо было все передавать в рендерпроцесс
Sergey
On demand решило было проблему
Дмитрий
Через ipc передавай
Anonymous
On demand решило было проблему
поясни пожалуйста что это ? мне нужно передать в рендер все данные, их может быть много
Sergey
Я думаю тебе все данные сразу не нужны
Anonymous
нужны, буду наверно через global передавать.. попробую поискать либо по синхронизации redux store между render и main процессами
Anonymous
либу*
Sergey
нужны, буду наверно через global передавать.. попробую поискать либо по синхронизации redux store между render и main процессами
Отображать всё сразу плохо по определению. Если вычислять, то можно делать в отдельном процессе, а рендеру передавать только то что ему нужно для отображения результата
Anonymous
Глобал плохо
а вот документации говорит что неплохо =) http://electron.atom.io/docs/faq/#how-to-share-data-between-web-pages