Size: a a a

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

2019 November 14

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Роман (((((
return {
 destroy: () => {
   currentReadArticle = null;

   articlesInfo.clear();
   alreadyReadArticles.clear();

   foundArticlesContainer = null;
   observer && observer.disconnect();
   newObserver && newObserver.disconnect();

   window.onclick = prevOnClickLogic;
   window.onscroll = prevOnScrollLogic;
 }
}
короче, без всего кода я не смогу сказать ничего подробного. Но то, что ты сделал (в первом сообщении) совершенно бесполезно
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
В песочницу код, сюда ссылку.)
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
секунду
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
Leet 4
В песочницу код, сюда ссылку.)
https://jsfiddle.net/j5ac4f1z/1/

Примерно такая там логика
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
Leet 4
В песочницу код, сюда ссылку.)
есть какие-то идеи?
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Роман (((((
есть какие-то идеи?
А почему с событиями так решил, не через  .addEventListener?) И неужели нельзя без переписывания значений в history?
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
Leet 4
А почему с событиями так решил, не через  .addEventListener?) И неужели нельзя без переписывания значений в history?
а есть разница между addEventListener?

По поводу переписывания значений history - не уверен, может и можно. Нужно дергать евент каждый раз, когда история меняется, для этого есть отличный метод onpopstate

Но он не работает, если история меняется через pushState и я вот такой вот способ нашел, это в принципе, фиксит проблему
источник

IK

Iliya Kobaliya in JavaScript — русскоговорящее сообщество
Ребят,удаление первого елемента в массиве занимет О(n) времени?Все следующие елементы смещатся на одну ячейку?Правильно?
источник

И

Игорь in JavaScript — русскоговорящее сообщество
Iliya Kobaliya
Ребят,удаление первого елемента в массиве занимет О(n) времени?Все следующие елементы смещатся на одну ячейку?Правильно?
да
источник

IK

Iliya Kobaliya in JavaScript — русскоговорящее сообщество
Спасибо!
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
так что, как можно память освобоодить от предыдущего вызова функции? :с
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Роман (((((
а есть разница между addEventListener?

По поводу переписывания значений history - не уверен, может и можно. Нужно дергать евент каждый раз, когда история меняется, для этого есть отличный метод onpopstate

Но он не работает, если история меняется через pushState и я вот такой вот способ нашел, это в принципе, фиксит проблему
в случае с addEventListener ты уверен, что его никто не перезапишет)
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Роман (((((
так что, как можно память освобоодить от предыдущего вызова функции? :с
проблема, как мне кажется, в том, что ты хранишь в замыкании ссылку на window.onscroll, которая потом передается обратно при  вызове destroy(). Не уверен, что сборщик поймет этот твой ход так, как ты задумал )
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
ну и в случае с addEventListener ссылка не будет храниться)
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
мне нельзя использовать addEventListener, потому что мой код будет внедрен в другой проект и там может быть другая реализация onscroll - мне ее нужно сохранить и при этом нужно, чтобы мой onscroll работал
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
как этот код можно тогда переписать так, чтобы все, что находится в init работало, а потом в один прекрасный момент по какому-нибудь событию эта функция перезапустилась, обнулив все свои переменные, как будто запускается в первый раз?
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Роман (((((
мне нельзя использовать addEventListener, потому что мой код будет внедрен в другой проект и там может быть другая реализация onscroll - мне ее нужно сохранить и при этом нужно, чтобы мой onscroll работал
как раз таки addEventListener не затрагивает ничего (в том числе не затрет никакой onscroll)
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
Leet 4
как раз таки addEventListener не затрагивает ничего (в том числе не затрет никакой onscroll)
если это, действительно, так, то это классно и надо будет добавить )
источник

L4

Leet 4 in JavaScript — русскоговорящее сообщество
Роман (((((
если это, действительно, так, то это классно и надо будет добавить )
главное прочитай как эти слушатели потом удаляются)
источник

Р(

Роман ((((( in JavaScript — русскоговорящее сообщество
Leet 4
главное прочитай как эти слушатели потом удаляются)
ну там есть removeEventListener - про это я знаю или ты что-то другое имеешь ввиду?
источник