Показать сообщение отдельно
  #2 (permalink)  
Старый 22.06.2020, 14:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Я думаю, что ничего не потеряется, если брать данные из события, а не из хранилища.

Чтобы не выполнять ненужные операции по несколько тысяч раз в секунду можно воспользоваться троттлингом.

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

Первая вкладка:
var buffer = [];
addEventListener('storage', function (e) {
    buffer.push(e);
});


Вторая вкладка:
for (let i = 0; i < 100; i++) {
    setTimeout(i => {
        localStorage.setItem('test', `loop: ${i}`);
    }, 10, i);
}


После запуска кода во второй вкладке просто обратитесь к переменной buffer в первой вкладке и посмотрите сколько событий было записано в массив.
Ответить с цитированием