Komentáře k článku

Webdesignérův průvodce po HTML5: WebStorage

Technologie počítané do „rodiny HTML5“ zahrnují kromě nových elementů a API k funkcím jako je geolokace i možnost provozování offline aplikací, jak jsme si naznačili v minulém článku. Ovšem aplikační cache je jen jedna část offline aplikace. Druhá, neméně důležitá, je ukládání dat na straně klienta.

Zpět na článek

20 komentářů k článku Webdesignérův průvodce po HTML5: WebStorage:

  1. _

    Udalosť storage

    „(Opera 10.60, Chrome 5.0.375) událost nevyvolaly.“
    Treba tú udalosť „správne“ zaregistrovať.
    Ja som použil nasledujúci kód, pre zaregistrovanie funkcie spracuj, a ten fungoval všade:

      document.onstorage = spracuj;
      document.onstoragecommit = spracuj;
      if (window.addEventListener) {
        addEventListener('storage',spracuj,false);
        }
        else if (window.attachEvent) {
            attachEvent('onstorage',spracuj);
        } 

    Možno sa to dá ešte skrátiť, kód bol vytvorený len pokusmi.
    Prehliadače sa ešte líšia v tom, či vyvolajú udalosť na tom istom okne.
    V iných oknách tú udalosť vyvolajú.

    1. Martin MalýAutor příspěvku

      Re: Udalosť storage

      Díky, do článku jsem to doplnil. Jen mi to stále v Chrome nefunguje (v Opeře ano).

      1. _

        Re: Udalosť storage

        Skúšal si to pre iné okno?
        Pre to isté okno to vyvolané byť nemusí – má to istý zmysel.

      2. _

        Re: Udalosť storage

        Ak sa otvorí viac okien s tým testovacím kódom, tak to funguje aj v Chrome, no nie pre okno, v ktorom udalosť vznikla.

        1. Martin MalýAutor příspěvku

          Re: Udalosť storage

          Přemýšlím, jestli je nějaký vhodnější komentář než „OMG WTF“, ale asi není. Tak tedy: OMG WTF?!??! ;) To je docela zajímavé chování…

          1. _

            Re: Udalosť storage

            Má to istú logiku.
            Ak okno v tom objekte niečo zmení, tak už o tom automaticky „vie“, nemusí mu to byť oznámené.
            Ostatným oknám to musí byť oznámené.
            Snáď sa časom registrácia udalosti aj toto správanie zjednotí.

              1. _

                Re: Udalosť storage

                Ak sa použije iframe, tak sa udalosť vyvolá v tom istom okne aj v Chrome – v tom iframe.

    2. fos4

      Re: Udalosť storage

      Takže řešení je navěsit události nejen na window ale i document, to je bordel :-)
      Jinak na jaké další díly HTML5 se můžeme těšit ?

      1. Martin MalýAutor příspěvku

        Re: Udalosť storage

        Nevím jestli těšit, ale ode mne tu bude ještě ukázka offline aplikace a Web Workers, a pak zase nastoupí Honza Sládek a bude psát o CSS3.

    1. Martin MalýAutor příspěvku

      Re: spracuj

      „Spracuj“ je tam přesně z toho důvodu, viz původní komentář.

  2. MikulasDite

    Lokální používání

    Stojí za zmínku, že IE8, IE9 platform preview ani Firefox nepodporují WebStorage pro protokol file:///. Localhost i ostatní http (třeba 127.0.0.1) funguje.

  3. LuKo

    Náhrada Cookie

    Lze obsah LocalStorage smazat z prohlížeče? Pokud by to nešlo, lze to celkem snadno použít místo cookies k identifikaci uživatele. Cookie smaže a je z něj zase anonym. O tomto 99,9 % BFU nemá ponětí, navíc pokud by to nešlo mazat, pak by to byla téměř 100% identifikace.

    1. Martin MalýAutor příspěvku

      Re: Náhrada Cookie

      Local Storage lze smazat, když člověk ví, kde se na disku nacházejí. :) Pravděpodobně to půjde i nějakým způsobem přes nastavení, ve svém FF jsem to ale nenašel (je možné, že to je schováno kdesi v hlubinách administrace pod nenápadným názvem). Jako nápad využít LS pro identifikaci je to určitě zajímavé, ale má to dvě ALE: Zaprvé potřebujete, aby uživateli běžel JavaScript, a zadruhé potřebujete, aby měl nový prohlížeč. Ale máte pravdu v tom, že local storages jsou (podobně jako flashová úložiště) „notoricky neznámá“ a že o nich nemají běžní uživatelé tušení. Minimálně za prozkoumání to stojí.

      1. _

        Re: Náhrada Cookie

        Pri kompletnom zmazaní histórie sa vo FF zmaže aj localStorage.
        Cez about:config sa dá táto funkčnosť veľmi jednoducho vypnúť.
        Pri použití FF pridanému k balíčku s najznámejším anonymizérom je localStorge vypnuté.

  4. MilosNemec

    Vlastnost navigator.onLine

    Díky za dobrý článek.
    Za zmínku možná stojí, že vlastnost navigator.onLine nic neříká o tom, jestli je uživatel skutečně online nebo offline. Jen kopíruje offline mód prohlížeče. Takže můžete třeba vesele pracovat oproti lokálnímu web serveru, bez připojení k internetu, vlastnost navigator.onLine ale bude vracet true a žádná data neodešlete. Takže bych online stav raději testovat nějak jinak, třeba HTTP requestem přímo na server.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3291