• Как реализовать вкладкобезопасное считывание/запись в localStorage?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    1. https://developer.mozilla.org/en-US/docs/Mozilla/A...

    2. Вы можете общаться между вкладками посредством ServiceWorkers и window.postMessage.
    Ответ написан
    Комментировать
  • Как реализовать вкладкобезопасное считывание/запись в localStorage?

    @rPman
    Увы, спецификация четко говорит:
    4.5 Threads

    Because of the use of the storage mutex, multiple browsing contexts will be able to access the local storage areas simultaneously in such a manner that scripts cannot detect any concurrent script execution.

    Но, вы можете попытаться, и симулировать мютексы сами.

    Классический пример, ищем атомарную операцию которая одновременно отметит факт блокировки в хранилище и выдаст ее состояние. Например реализация мютекс: lockState=++localStorage['lockState'];
    Здесь вы получаете количество процессов, желающих получить доступ к объекту и одновременно повышаете количество блокировок, вы смело можете долго проверять это значение, и если оно больше 0 то не немного подождать и повторить попытку потом (само собой тут же уменьшив количество блокировок), когда именно, отдельный разговор, например можно завернуть работу с вашей базой через ваши методы, где и вызывать свои колбеки.
    Ответ написан
    Комментировать