Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   JS.next(стандарты, фичи, движки) (https://javascript.ru/forum/offtopic/50248-js-next-standarty-fichi-dvizhki.html)

kobezzza 29.11.2014 18:38

Цитата:

Сообщение от Яростный Меч (Сообщение 343467)
Потоки - это фича исполняющей среды, а не языка. ВебВоркеры, например.

Потоки могут быть частью самого языка, см. Rust. Про ущербность ВебВоркеров я писал неоднократно.

Вот я сделал потоки на основе именно языка: http://javascript.ru/forum/project/4...tml#post330243

и юзать их охренеть как удобно, очень хотелось бы иметь похожее из коробки.

cyber 02.12.2014 03:31

Кто то может объяснить что это за штука http://www.w3.org/TR/beacon/ ?

cyber 02.12.2014 03:38

И еще вопрос Map, WeakMap, Set, WeakSet какая между ними разница, кроме названия?

Aetae 02.12.2014 04:49

cyber, глупый вопрос, неужто непонятно из пары строчек описания?

kobezzza 02.12.2014 08:40

Set - набор одиночных уникальных значений.
Map - набор значений типа key: value.

Weak типы - это не перечисляемые аналоги Set и Map и они не могут содержать в качестве ключа не объекты, а нужны для более простой очистки памяти.

var s = new WeakSet();
// Мы добавили анонимный объект в WeakSet,
// но т.к. на него нет внешних ссылок,
// то он будет немедленно удалён сборщиком мусора
s.add({});


Пример из жизни WeakMap: у меня на сервере в нём лежат {объект соединения пользователя : ИД сессии} и когда рвётся связь и объект соединения удаляется, то он автоматически чистися из WeakMap.

Aetae 02.12.2014 08:52

Цитата:

то он будет немедленно удалён сборщиком мусора
Немедленно ли? Думается мне, что потому значения там и не перечисляемые, что удалены будут из памяти только при следующем проходе GC. Я не прав?

kobezzza 02.12.2014 09:01

Цитата:

Сообщение от Aetae (Сообщение 343904)
Немедленно ли? Думается мне, что потому значения там и не перечисляемые, что удалены будут из памяти только при следующем проходе GC. Я не прав?

Я имел ввиду немедленно для программиста :) GC JS VM никаким стандартом не регламентирован и в каждой VM работает по своему, поэтому хз :) Если нужно прям немедленно и без GC, то типизированные массивы спешат на помощь :)

Цитата:

Думается мне, что потому значения там и не перечисляемые
Если бы значения были перечисляемые, то такое удаление впринципе было бы невозможно.

var s = new Set();
s.add({});

// Мы всегда можем получить ссылку на значения через перечисление
s.forEach ...
s.keys ...

cyber 02.12.2014 10:27

kobezzza, Спасибо, а что скажешь насчет Beacon API не совсем пойму где эта штука может пригодится

kobezzza 02.12.2014 11:23

Цитата:

Сообщение от cyber (Сообщение 343916)
kobezzza, Спасибо, а что скажешь насчет Beacon API не совсем пойму где эта штука может пригодится

Это для решения проблемы: нужно отправить аякс запрос на событий закрытие вкладки / окна, т.е. бекон гарантированно отправится, а вот аякс - нет.

cyber 02.12.2014 11:40

kobezzza,понял, спасибо


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