Web applikáció és offline működésük

Egyre jobban elterjedő technológia azon webes alkalmazások üzemeltetése, amik nem csak aktív internetkapcsolat segítségével érhetőek el, hanem akár internetkapcsolat nélkül is. Vannak olyan alkalmazások, amiknél ez nagyon költséghatékony és hasznos fejlesztés, viszont van egy határ amitől szükség van internetelérésre, mert másképpen nem oldható meg.

Mind amellett, hogy kötséghatékony, ütemesebbé-gyorsabbá tehetjük vele alkalmazásunk, hiszen nem kell minden utasításkor internetről kérdeznie az adott visszaérkező választ, hanem egyszerűen a gyorsítótárban tárolt adatból tud dolgozni. Ez például azoknál az alkalmazásoknál hasznos, amik nem frissülnek tartalmi szempontból sűrűn, így elegendő ha néha figyelmeztetjük a felhasználót, hogy frissült az adatbázis, lehetőség van a frissítésre. Ilyen applikáció például egy menetrend vagy webes-játék (HTML5) esetében hasznos. A menetrend nem változik napról-napra, a webes-játéknál pedig amit lehet azt eltároljuk a cache-ben és tudja internetkapcsolat nélkül is használni a felhasználó. De ide sorolhatóak még a tájékoztató és információs alkalmazások is, amelyek szintén nem frissülnek rendszeresen.

Különböző mobilos böngészők régebb óta támogatnak egy olyan funkciót melynek segítségével egy weboldal tartalmát el lehet menteni és kapcsolat nélkül visszahívható és olvasható bármikor. iOS esetében már a Safari kezdeti verziója óta támogatja ezt a lehetőséget és a felhasználók a statisztikák alapján kedvelik és használják a hétköznapjaikban.

Az ilyen offline alkalmazások appcache-ben tárolják a fontos adatokat amelyek elengedhetetlenek a működésükhöz. Amikor ezen applikációk készülnek, fontos a tervezés során, hogy ha módosul bármely cache-ben tárolt fájl tartalma, az nem fog közvetlenül frissülni az eszközökön is. Erre használandó az .appcache fájl ami arról gondoskodik, hogy ha a listázott fájlok közül, amelyek a cachet használják, újratöltődnek a cache-be, de csak abban az esetben ha a .appcache fájl tartalma módosul.

Na de mi a helyzet, ha nem módosulnak a fájlok elnevezései és mégis szeretnénk frissíteni a .appcache fájlunk? A válasz egyszerű: verzióhasználat. Egyszerűbb módosítani egy verziószámot a fájlunkban, mint felcserélni a fájlokat, vagy bármi más módosítást végezni. Tehát mivel a verziószám váltással módosult a .appcache fájlunk így a CACHE szekcióban felsorolt fájlok azonnal frissülni fognak. Persze lehet olyan funkciót fejleszteni, hogy engedély után töltsünk le frissítést, (menetrend, stb…) ezzel megelőzve azt, hogy akaratlanul terheljünk egy mobilinternet adatforgalmat. De ha az alkalmazás enm támogatja ezt a funkciót, akkor a mobilon futó operációs rendszer gondoskodik erről, ugyanis kikapcsolható akár az is, hogy egy alkalmazás mobilinterneten keresztül létesítsen-e kapcsolatot az alkalmazáson belül.

De hogy konkrétan mit érdemes tárolni cache-ben? Képeket és nagyobb dolgokat semmiképpen sem. Nagyon korlátozott tárhely áll rendelkezésre a cachelt fájlok tárolására, ezért médiatartalmat nem ajánlott tárolni benne. Mivel ezen csekély tárterületen kell gazdálkodnia a fejlesztőnek, ezért minden cachet használó fájlt alaposan és orientáltan kell felépíteni, ugyanis ha nem ilyen elgondolással lesz fejlesztve egy alkalmazás, akkor könnyen megtelítődhet a tárterület, és időtúllépéseket és hibákat kaphat. Firefox által reprezentált LocalForage leírása alapján 5MB tárterületet ad, ami egy nagyobb felbontású kép tárolására sem alkalmas.