@js_ru
JavaScript — русскоговорящее сообщество

Рекомендуем сразу отключить уведомления Правила: http://bit.ly/our_etiquette См. также: @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

3006 members

Архив канала @js_ru 1 февраля 2017 г.

07:57:47 ДП
User 174174176
ппл, как то можно в хроме посмотреть трефик что по вебсокету идёт?
08:00:21 ДП
User 68520717
User 174174176
ппл, как то можно в хроме посмотреть трефик что по вебсокету идёт?
Должно быть в девтулз где-то
08:00:43 ДП
User 174174176
да, спасибо. просто не смог разглядеть сразу "WS" в меню
12:12:35 ПП
User 151091411
коллеги, а кто какую библиотеку пользует для хранения в браузерных стораджах?
12:17:53 ПП
User 155513348
User 151091411
коллеги, а кто какую библиотеку пользует для хранения в браузерных стораджах?
так тебе под редакс или просто js?
12:21:54 ПП
User 164545727
User 151091411
коллеги, а кто какую библиотеку пользует для хранения в браузерных стораджах?
юзаю pouchdb
12:22:13 ПП
User 151091411
User 155513348
так тебе под редакс или просто js?
просто js
12:22:40 ПП
User 155513348
какие хранилища тебя интересуют?
12:22:49 ПП
User 155513348
local/session
12:23:22 ПП
User 151091411
я пилю фронтенд, который работает с бэком по апи, своего бэка нет, и надо некоторые данные хранить персистентно в браузере. вот думаю.
12:23:48 ПП
User 155513348
а на какое время?
12:24:03 ПП
User 155513348
так то можно голый редакс использовать и хранить там
12:24:10 ПП
User 155513348
в сторе
12:24:14 ПП
User 62169189
зачем библиотека?
12:24:15 ПП
User 151091411
некоторые поля дни-недели, некоторые поля минуты-часы
12:24:15 ПП
User 62169189
есть локал
12:24:19 ПП
User 62169189
есть indexeddb
12:24:25 ПП
User 62169189
есть сервисворкеры
12:24:42 ПП
User 151091411
надо чтобы данные сохранялись после перезагрузки страницы или даже перезагрузки браузера и компьютера
12:24:58 ПП
User 155513348
User 151091411
некоторые поля дни-недели, некоторые поля минуты-часы
local
12:25:04 ПП
User 151091411
User 62169189
есть indexeddb
опасаюсь что не везде поддержка есть, в т.ч. на мобильных браузерах
12:25:13 ПП
User 155513348
либо кукисы
12:25:32 ПП
User 62169189
так одно другое не заменяет
12:26:01 ПП
User 62169189
посмотри какие юзер-агенты нужны, возьми что работает
12:26:11 ПП
User 62169189
и что подходит под нужды
12:26:20 ПП
User 62169189
всё разное
12:26:33 ПП
User 151091411
вот и не хотелось бы париться, думаю кто-то уже сталкивался, пока нашел вот http://brian.io/lawnchair/, попробую однако.
12:26:40 ПП
User 151091411
она сама определяет что работает и переключает если надо
12:26:53 ПП
User 155513348
можно использовать локалсторэйдж и закидывать туда действующее время, потом при каждой загрузке страницы - вытаскивать оттуда данные и валидировать их
12:27:19 ПП
User 155513348
смотреть сколько времени и если по нему уже срок истёк то очищать
12:27:27 ПП
User 155513348
но это не совсем безопасно и правильно
12:27:42 ПП
User 155513348
в идеале еще задействовать сервер
12:27:48 ПП
User 155513348
т.е. бекенд
12:28:57 ПП
User 151091411
да там служебка храниться будет в основном
12:29:08 ПП
User 151091411
полезные данные через апи на бэкенд улетать будут
12:32:56 ПП
User 155513348
попробуй, как я понимаю та либа хранит данные в json файле?
12:33:20 ПП
User 155513348
User 151091411
вот и не хотелось бы париться, думаю кто-то уже сталкивался, пока нашел вот http://brian.io/lawnchair/, попробую однако.
вот эта
12:34:55 ПП
User 151091411
она смотрит что доступно в браузере, локалсторадж, еще что-то и юзает это для хранения
12:35:20 ПП
User 151091411
a Lawnchair is sorta like a couch except smaller and outside. perfect for html5 mobile apps that need a lightweight, adaptive, simple and elegant persistence solution.
12:35:53 ПП
User 151091411
features

super micro tiny storage without the nasty sql: pure and delicious json.
default build weighs in at 3.4k minified; 1.5 gzip'd!
adaptors for any clientside store.
designed with mobile in mind.
clean and simple api.
key/value store ...key is optional.
terse syntax for searching/finding.
battle tested in app stores and on the open mobile web.
framework agnostic. (if not a framework athiest!)
mit licensed.
by default, Lawnchair will persist using dom storage but if other adapters are available and dom storage isn't supported by the currently executing javascript runtime. Lawnchair will attempt each successive adapter until it finds one that works. easy.
12:36:22 ПП
User 309556
User 62169189
есть indexeddb
сразу видно, не работал с голым indexeddb
12:36:32 ПП
User 309556
pouchdb бери
12:37:19 ПП
User 309556
есть еще localForage
12:38:20 ПП
User 155513348
User 309556
есть еще localForage
как-то натыкался на него
12:39:04 ПП
User 309556
я еще пробовал dexie, но не очень им доволен
12:39:43 ПП
User 309556
апи плохое + свои промисы там, которые нельзя подменять на нативные в некоторых случаях
12:40:02 ПП
User 309556
и странные миграции
12:41:07 ПП
User 151091411
а зачем промисы там? вроде не должно занимать много времени положить что-то или достать оттуда? почему бы синхронно не делать?
12:55:26 ПП
User 309556
потому что indexeddb асинхронный
12:55:34 ПП
User 309556
и это какбе преимущество
03:28:48 ПП
User 58676340
господа
03:28:57 ПП
User 58676340
мб есть простые идеи, как может быть такая хрень
03:29:31 ПП
User 58676340
есть click в jquery (да-да, ужас, но для этого проекта идеальный вариант). в нём есть e.stopPropagation, e.preventDefault
03:29:58 ПП
User 58676340
если я тыкаю на элемент - евент следующего обработчика всё равно отрабатывает
03:30:29 ПП
User 58676340
если я ставлю брейк внутри своего обработчика
03:30:44 ПП
User 58676340
а потом просто продолжаю работу (тыкаю continue)
03:30:53 ПП
User 58676340
евент следующего обработчика не отрабатывает =)
03:31:14 ПП
User 58676340
проще говоря - с брейком всё работает как и должно, без него - не работает
03:31:15 ПП
User 155513348
элемент какой?
03:31:21 ПП
03:31:41 ПП
User 155513348
http://ruseller.com/jquery.php?id=125
03:31:48 ПП
User 68520717
ты ведь знаешь что preventDefault и stopPropagation это не jquery методы?
03:32:23 ПП
User 58676340
естественно
03:32:44 ПП
User 58676340
про jquery упомянул просто на случай если вдруг кто-то знает о каких-то особенностях jquery-шного bind’а
03:33:23 ПП
User 62169189
User 68520717
ты ведь знаешь что preventDefault и stopPropagation это не jquery методы?
В жквери есть они, у жквери событий
03:33:24 ПП
User 155513348
http://api.jquery.com/unbind/
03:33:44 ПП
User 68520717
User 62169189
В жквери есть они, у жквери событий
они переопределяют стандартные?
03:33:56 ПП
03:34:05 ПП
User 155513348
я не понимаю сути в клике по изображению e.stopPropagation, e.preventDefault
03:34:16 ПП
User 62169189
Там свои события
03:34:31 ПП
User 62169189
Так как раньше там всё было всё разное у всех
03:35:42 ПП
User 58676340
есть мини-галерея. использую плагин prettyPhoto для неё. он вешает своё открытие на <a> внутри которого <img>. я хочу при помощи ctrl выделять изображения кликом. ну типа для множественного выбора и массовых действий. поэтому я на img вешаю такую тему:
03:35:54 ПП
03:36:53 ПП
User 58676340
собственно, вот я и не могу понять, какого чёрта даже при 100% отработавших preventDefault/stopPropagation скрипт галереи всё равно срабатывает и изображение открывается
03:37:13 ПП
User 151091411
User 58676340
проще говоря - с брейком всё работает как и должно, без него - не работает
код бы показал, слишком бастрактно
03:37:24 ПП
User 58676340
если каких-то очевидных идей ни у кого нет - придётся идти курить исходный код самой галереи
03:37:48 ПП
User 58676340
User 151091411
код бы показал, слишком бастрактно
какой именно? мой код - чуть выше, код галереи здесь точно неуместен, если дело в нём - я уже сам в него окунусь
03:38:37 ПП
User 62169189
Клавиатурные модификаторы есть в мышиных событиях?
03:39:16 ПП
User 68520717
не должны
03:39:44 ПП
User 58676340
евент точно jquery оборачивает сама
03:40:04 ПП
User 58676340
интересная, кстати, мысль, мб попробовать сделать e.originalEvent.preventDefault/stopPropagation
03:40:09 ПП
User 68520717
что у тебя в ивенте?
03:40:19 ПП
User 68520717
у тебя там есть ctrlKey?
03:41:21 ПП
User 58676340
конечно
03:43:13 ПП
User 62169189
А оно в булево true кастится?
03:43:33 ПП
User 58676340
оно не просто кастится - оно и есть boolean
03:44:00 ПП
User 58676340
с этим проблемы нет - у меня там console.log на последней строке. проще говоря - код с preventDefault 100% отрабатывает
03:44:23 ПП
User 62169189
А preventDefault при каких делах?
03:44:33 ПП
User 62169189
stopPropagation
03:44:56 ПП
User 58676340
при ctrlKey || metaKey (зажатом ctrl или cmd)
03:45:00 ПП
User 62169189
Стоп, какой жквери вообще
03:45:08 ПП
User 62169189
Там img.onmousedown
03:45:23 ПП
03:45:35 ПП
03:45:44 ПП
User 58676340
img = $(‘… > img’)
03:45:44 ПП
User 62169189
Маусдаун
03:47:49 ПП
User 58676340
User 58676340
интересная, кстати, мысль, мб попробовать сделать e.originalEvent.preventDefault/stopPropagation
не помогло
03:48:05 ПП
User 58676340
у меня ощущение, что галерея свой event вешает куда-то высоко, типа document/body
03:48:20 ПП
User 58676340
а внутри него просто проверяет таргеты. из-за этого я не могу поймать
03:48:31 ПП
User 158922852
User 58676340
с этим проблемы нет - у меня там console.log на последней строке. проще говоря - код с preventDefault 100% отрабатывает
а что ты хочешь то? e.preventDefault() тебе же функцию не остановит
03:48:57 ПП
User 58676340
User 158922852
а что ты хочешь то? e.preventDefault() тебе же функцию не остановит
функцию нет, следующий по счёту евент - да. я разве не прав?
03:49:11 ПП
User 58676340
User 58676340
функцию нет, следующий по счёту евент - да. я разве не прав?
точнее, это про stopPropagation
03:49:22 ПП
User 158922852
User 58676340
функцию нет, следующий по счёту евент - да. я разве не прав?
stopPropagation следующий всплывающий эвент остановит
03:49:48 ПП
User 58676340
User 158922852
stopPropagation следующий всплывающий эвент остановит
галерея висит на <a>, я вешаю евент на <img>, вёрстка там вида <a><img></a>
03:50:41 ПП
User 158922852
может проблема в click / mousedown эвентах? это 2 разных эвента и stopPropagation при маусдауне не остановит всплытие в клике
03:51:02 ПП
User 58676340
вроде бы preventDefault в маусдауне должен остановить click вообще
03:51:34 ПП
User 62169189
User 58676340
вроде бы preventDefault в маусдауне должен остановить click вообще
Э, почему?
03:51:50 ПП
User 58676340
User 62169189
Э, почему?
а хз, откуда-то это лежит в голове. сейчас зачекаю
03:52:31 ПП
User 62169189
Плюс (маловероятно) событие может быть обработано во время capturing-фазы
03:53:49 ПП
User 58676340
охренеть
03:54:01 ПП
User 58676340
User 58676340
вроде бы preventDefault в маусдауне должен остановить click вообще
интересно, откуда я это дерьмо взял
03:54:28 ПП
User 58676340
проверил, это ложное утверждение. спасибо. видимо в каком-то другом языке запомнил такое поведение и экстраполировал в js(
03:56:02 ПП
User 62169189
Это не язык, это DOM
03:58:06 ПП
User 58676340
ну, да, так вернее.
04:04:52 ПП
User 151091411
User 158922852
а что ты хочешь то? e.preventDefault() тебе же функцию не остановит
e.preventDefault обычно выполняется чтобы нативные эвенты тормознуть. а тут походу надо stopPropagation, чтобы евент дальше до родителя не каскадился
04:11:56 ПП
User 158922852
User 151091411
e.preventDefault обычно выполняется чтобы нативные эвенты тормознуть. а тут походу надо stopPropagation, чтобы евент дальше до родителя не каскадился
вообще, если я правильно понял, чел говорит о том, что при брейке и последующим continue (то есть в дебагере отловил событие и после продолжил выполнение скрипта) работает как надо. Значит, вероятнее всего, проблема в том, что эвенты синхронно отрабатывают, то бишь при mousedown'e вешается эвент mousedown'a на другой элемент и этот эвент сразу же  отрабаывает
04:14:46 ПП
User 151091411
код надо смотреть, телепатия не рулит :)
04:15:00 ПП
User 158922852
User 151091411
код надо смотреть, телепатия не рулит :)
+++
06:03:40 ПП
User 58676340
код я кидал выше, он очень лакончен, код галереи - слишком жирный, чтобы кидать сюда) мне и нужна была небольшая телепатия - просто вас много и вы быстро смогли накидать разные варианты, один из которых оказался верен. а влезть в код галереи - ну, это всегда можно сделать, просто это сожрёт больше времени)
06:07:29 ПП
User 68520717
На самом деле меньше
06:07:38 ПП
User 68520717
Какая разница чей код
06:07:49 ПП
User 68520717
Все равно он у тебя в проде
06:08:15 ПП
User 68520717
А так встретился с багом, прочитал исходники, починил
06:08:29 ПП
User 68520717
В следующий раз в разы быстрее
07:18:37 ПП
User 151091411
User 68520717
А так встретился с багом, прочитал исходники, починил
+
07:23:08 ПП
User 210944655
Hello! Combot is a service for community analytics. It will gather chat statistics, rate users for their activities and help admins in group management.
I can share statistics link for this chat via /stat command. Link is always the same. Here's link for your chat.