Size: a a a

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

2020 May 06

AS

Andrey Shershnev in JavaScript — русскоговорящее сообщество
Scrollintoview дефолтный метод у любых элементов
источник

AS

Andrey Shershnev in JavaScript — русскоговорящее сообщество
Алексей Клименко
А как понять, когда скоролл закончится, если много событий? Там коллбек что ли есть?
В современных браузерах, если туда передать определенный свойства, он сделает скроллинг к элементу плавным, а плавный скроллинг вызовет кучу событий скролла, как и обычный скролл (если крутнуть колёсико мыши)
источник

АК

Алексей Клименко... in JavaScript — русскоговорящее сообщество
Andrey Shershnev
В современных браузерах, если туда передать определенный свойства, он сделает скроллинг к элементу плавным, а плавный скроллинг вызовет кучу событий скролла, как и обычный скролл (если крутнуть колёсико мыши)
И как вы поймёте, когда пора флаг снимать? По таймауту?..
источник

AS

Andrey Shershnev in JavaScript — русскоговорящее сообщество
Алексей Клименко
И как вы поймёте, когда пора флаг снимать? По таймауту?..
Да, скорей всего по тайм-ауту, что тоже может родить багов...
источник

АК

Алексей Клименко... in JavaScript — русскоговорящее сообщество
Алексей Клименко
Так, я попробовал переделать архитектуру так, чтобы использовать WebWorkers.

Теперь – ВКЛАДКА ПАДАЕТ! ))

Причём я не кривой, я всё аккуратно делаю: один воркер, один запрос, один коллбек, один postMessage, и один небольшой объект в ответе.
Не сотни воркеров, и не сотни раз в секунду передаются данные.

И вкладка падает не во время операции, а уже после – когда трогаю/прокручиваю страничку, или сворачиваю окно браузера.

Пробовал изменить функцию вызова воркера – чтобы он не вызывался, а всё считалось асинхронно на основном потоке – тогда работает.
Запускаю воркера, но не передаю ему задачу – работает.
Передаю задачу, но не пользуюсь результатами (и не возвращаю объект в основную программу) – уже падает.

Воркер обращается к IndexedDB, причём успешно.
@Oracle_C

Блин, думал, мой код воркера случайно где-то (даже знаю, где именно) document трогает, и поэтому сыпется.

Но нет! Специально проверил, не в DOM дело (и в любом случае, это вызвало бы ошибку, а не краш).

Повышенного расхода памяти или ЦП тоже не наблюдаю.
источник

AS

Andrey Shershnev in JavaScript — русскоговорящее сообщество
Алексей Клименко
И как вы поймёте, когда пора флаг снимать? По таймауту?..
На самом деле очень удивлен что у события нету отличия откуда оно вызвано...
источник

S

Sm•ok 😈✔️ in JavaScript — русскоговорящее сообщество
Алексей Клименко
@Oracle_C

Блин, думал, мой код воркера случайно где-то (даже знаю, где именно) document трогает, и поэтому сыпется.

Но нет! Специально проверил, не в DOM дело (и в любом случае, это вызвало бы ошибку, а не краш).

Повышенного расхода памяти или ЦП тоже не наблюдаю.
Я запускал бесконечный цикл в воркере
источник

S

Sm•ok 😈✔️ in JavaScript — русскоговорящее сообщество
И даже тогда ничего не падало
источник

АК

Алексей Клименко... in JavaScript — русскоговорящее сообщество
Sm•ok 😈✔️
Я запускал бесконечный цикл в воркере
Цикл и я запустить пробовал, всё норм.

А вот код на 3000 строчек, с кучей синхронных и асинхронных вызовов, работающий с IndexedDB через обёртку с таймаутами вокруг транзакций…
источник

АК

Алексей Клименко... in JavaScript — русскоговорящее сообщество
Sm•ok 😈✔️
И даже тогда ничего не падало
Причём у меня падает конкретно лишь после отработки воркера. Словно тогда, когда GC идёт память освобождать…
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
Как-то можно от текущего элемент вверх по нодам удалить элементы?
источник

АК

Алексей Клименко... in JavaScript — русскоговорящее сообщество
Ну там parent или parentNode должен быть.
источник

I

Igor in JavaScript — русскоговорящее сообщество
🦜
Как-то можно от текущего элемент вверх по нодам удалить элементы?
Соседние?
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
Igor
Соседние?
div
div
div
div.current
div
div
div

нужно вверх от current по нодам удалить все
источник

I

Igor in JavaScript — русскоговорящее сообщество
🦜
div
div
div
div.current
div
div
div

нужно вверх от current по нодам удалить все
найди parent и пройдись циклом, пока не дойдешь до .current
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
Igor
найди parent и пройдись циклом, пока не дойдешь до .current
да это понятно
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
я думал, можно иначе
источник

I

Igor in JavaScript — русскоговорящее сообщество
вроде как нет такой возможности
источник

И

Иван in JavaScript — русскоговорящее сообщество
🦜
я думал, можно иначе
источник

I

Igor in JavaScript — русскоговорящее сообщество
ага, ток что наше тоже
источник