UNPKG

sbis3-node-ws

Version:

Модуль позволяет использовать ядро интерфейсного фреймворка sbis3-ws(`core.js`) и модуль работы с данными (`Source.js`) в приложении на nodejs.

34 lines (24 loc) 2.75 kB
В IE8 нет нормальных storage events. ? Попробуем положить в основу locable storage: http://balpha.de/2012/03/javascript-concurrency-and-locking-the-html5-localstorage/ Обмен фреймами Мастер кладет фрейм в localStorage. И сразу же его удаляет. Мы получим два storage event - одно на запись, второе на удаление. Каждая вкладка, получив первый эвент считает свой новый фрейм. Что делать, если storage event сломан? В IE8 мы не получим ни одного эвента вообще т.к. по его мнению ниче не поменялось... Можно не удалять фреймы и даже сделать обертку события и получать извещение в IE но не понятно как удалять Что если мы применим locable storage? Что это даст? Поставив блокировку мы обеспечим эксклюзивный доступ к хранилищу. Допустим мы сделаем по "очереди" для каждого слушателя. Точнее, очередли сделают сами слушатели а мастер будет эксклюзивно в очереди писать но если он пишет эксклюзивно - зачем блокировка? Потому что надо удалять. Значит запись - не эксклюзивная. Значит блокировка нужна. Ок, каждый слушатель делает очередь, мастер блокируя хранилище пихает каждому в очередь фреймы. Каждый слушатель по таймеру блокирует хранилище и забирает себе все фреймы после чего трет очередь. Также каждый слушатель должен писать свое время. Не эксклюзивно. Каждый по таймеру сбирает всех живых, мастер для мертвых затирает время и очередь. Доступ не эксклюзивный но и пофиг, потому что на удаление только для умерших. Что делать с выборами? Что если тоже сделать очередь. Каждый приходит и встает в очередь быть мастером. Каждый читает очередь, мониторит когда ведущий помрет. После этого все