Hirdetés

Új hozzászólás Aktív témák

  • nevemfel
    senior tag

    Jó kérdés. Mivel a localstorage egy faék key-value tároló, ez őrült sérült nem tud lenni. :D Ráadásul a javascript csak egy szálon tud futni, szóval ne keverjük össze az aszinkron futást a párhuzamos futással.
    Ergo szerintem olyan versenyhelyzet elő tud fordulni, hogy több böngészőfül felülírja egymás adatát, de ettől még nem lesz sérült az adatbázisod.
    Azaz egyedül a felülírásra kellhet odafigyelned, már ha erre is tényleg oda kell figyelned, vagy pedig elfogadjuk természetesnek, hogy ha A kulcsot az egyik fül B-vel, a másik meg C-vel akarja feltölteni, akkor az fog nyerni, amelyik utoljára módosította.

    Azaz egyedül a felülírásra kellhet odafigyelned, már ha erre is tényleg oda kell figyelned, vagy pedig elfogadjuk természetesnek, hogy ha A kulcsot az egyik fül B-vel, a másik meg C-vel akarja feltölteni, akkor az fog nyerni, amelyik utoljára módosította.

    Ugye a javascript kód egy oldalon egyetlen szálon fut, tehát egyetlen oldalon ilyen nem történhet. Az is feltételezhető, hogy ha több tabon fut ugyanazon a domainen található különféle script, az szintén egy szálon fog futni, dacára annak, hogy külön tabok futhatnak külön szálon. Tehát ebben az esetben egy localStorage.setItem(kulcs, walamiMuvelet(localStorage.getItem(kulcs))) atomi műveletnek tekinthető.

    Nem vagyok expert abban, hogy _pontosan_ hogyan is működnek a modern böngészők javascript futtatókörnyezetei, de nagyon remélem, hogy azonos domaint egy szálon kezelnek. Mert ha nem így van, akkor a Jóisten irgalmazzon nekünk, meg a scriptjeinknek, hogy mi lesz a végeredmény, ugyanis ez teljesen szembemegy a böngészőben futó javascript alapelveivel. :)

Új hozzászólás Aktív témák