Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Collection v5 (https://javascript.ru/forum/project/47717-collection-v5.html)

cyber 30.11.2014 18:07

kobezzza, совсем по теме темы , но вопрос про генераторы это посути не совсем потоки, а что то типо sleep на сколько я понял, в чем их преймущество?

kobezzza 30.11.2014 18:10

Цитата:

Сообщение от cyber (Сообщение 343644)
kobezzza, совсем по теме темы , но вопрос про генераторы это посути не совсем потоки, а что то типо sleep на сколько я понял, в чем их преймущество?

Настоящие потоки - это тоже по сути sleep :)

Если сравнивать с WebWorker, то: https://github.com/kobezzza/Collecti...1%81-webworker

Ну и сама статья раскрывает суть: https://github.com/kobezzza/Collecti...%B2-Collection

Пример из жизни: у меня в проекте каждый UI элемент - это виджет, который живет своей жизнью: он принимает асинхронные сообщения, что-то считает и т.д. таких виджетов в среднем на странице 80-100 и часто возникает ситуация, когда "одновременно" сваливается куча асинхронных обработчиков и из-за этого фризится окно. Если разводить потоки вручную, т.е. делать специальный стек исполнения и т.д., то это требует дополнительных заморочек при написании самих виджетов и вообще геморой (я так раньше делал), а с появлением таких легких потоков - я просто отдаю это на откуп Collection и пишу код как обычно, но при этом фризы исчезли полностью и все просто летает.

cyber 30.11.2014 18:11

Цитата:

Сообщение от kobezzza
Если сравнивать с WebWorker, то: https://github.com/kobezzza/Collecti...1%81-webworker

Ох не фига себе, спасибо )

cyber 30.11.2014 18:13

kobezzza, А ты не думал написать большую статью о collection на хабре, о том как все внутри работает? Знаю ты много писал тут на форуме, но все как то разбросанно по темам

kobezzza 30.11.2014 18:20

Цитата:

Сообщение от cyber (Сообщение 343647)
kobezzza, А ты не думал написать большую статью о collection на хабре, о том как все внутри работает? Знаю ты много писал тут на форуме, но все как то разбросанно по темам

Думал, даже потихоньку делаю, но написании статьи сложная штука: либо пиши на фултайме (а для меня - это роскошь), либо потихоньку после работы, когда есть силы и желание, но это медленный процесс :)

cyber 30.11.2014 19:52

kobezzza, круто :)

cyber 03.12.2014 21:50

kobezzza, а выполнение в webworker не планируешь добавить?

kobezzza 03.12.2014 22:00

Цитата:

Сообщение от cyber (Сообщение 344287)
kobezzza, а выполнение в webworker не планируешь добавить?

Пока не планировал.

kobezzza 14.12.2014 18:33

Выпустил обновление: 5.4.14

cyber 17.12.2014 01:43

kobezzza, у меня твой collection выдает странную фигню при запуске на фантоме, при переборее коллекции .

этот цикл обернут другим циклом который перебирает коллекцию tr, tr 2 элемента поэтому 0 и 1.
но вот откуда 2 length ?

$C(tr.children).forEach( function ( elem, i ) {

                console.log( elem, i );

            } );


если перебирать так, то все хорошо.
[].forEach.call( tr.children, function ( elem )  {

                console.log ( elem );


    } );




Вывод:

Цитата:

CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length
CONSOLE: [object HTMLTableCellElement] 0
CONSOLE: [object HTMLTableCellElement] 1
CONSOLE: 2 length


Часовой пояс GMT +3, время: 09:35.