BLOGas.lt
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

HTML 5 naršyklėse IE8 ir FF3.5 – 3 dalis – DOM saugyklos

Parašė Sergejus | 2009-10-26 22:13

Dažna problema programuojant Web aplikacijas – kur patalpinti tarpinius duomenis pereinant nuo vieno puslapio prie kito. Jeigu mes programuojame serverio pusėje, ASP.NET turi sesiją, ViewState ir kitus mechanizmus. Kita alternatyva, kuri palaikoma ir tiesiogiai iš JavaScript – cookies. Cookies yra labai populiarūs, norint išsaugoti nedidelį duomenų kiekį. Jeigu reikia išsaugoti daugiau duomenų – atsiranda problemų. Pagrindinė cookies problema – jie teleidžia išsaugoti vos 4 KB duomenų.

HTML 5 minėtą duomenų saugojimo problemą siūlo spręsti DOM saugyklos pagalba. Specifikacija apibrėžia dviejų tipų saugyklas – sesijos ir lokalią DOM saugyklas. Pirmoji saugo duomenis naršyklės atmintyje visos aktyvios sesijos metu, antroji – visus duomenis saugo neribotą laiką. Svarbiausia tai, kad abi saugyklos leidžia saugoti net iki 10 MB informacijos vienam domenui!

Tarkime, mes turime puslapį DOM1, kuriame galima įvesti tam tikrą informaciją, ir puslapį DOM2, kuriame prieš tai įvesta informacija atvaizduojama. HTML kodas atrodys taip:

DOM1

ie8_dev5

DOM2
ie8_dev6

Kaip matyti, šiame pavyzdyje aš naudoju sesijos saugyklą, kuri yra pasiekiama iš window objekto (window.sessionStorage). DOM saugyklos programavimas yra labai paprastas ir intuityvus, užtenka sessiosStorage objektui apibrėžti norimą savybę (pvz., text) ir priskirti jai reikšmę ar kitą objektą.

Sesijos saugykla, kaip ir minėjau, saugo duomenis tik aktyvios sesijos metu, t.y. uždarius naršyklę – visi duomenys dings. Norėdami išsaugoti informaciją neribotam laikui (panašiai kaip yra su cookies), užtenka aukščiau pateiktame kode window.sessionStorage pakeisti į window.localStorage. Nuo šiol jus visada galėsite pasiekti anksčiau išsaugotus duomenis.

Apibendrinant, HTML 5 informacijos saugojimo būdas kliento pusėje man atrodo labai perspektyvus. Tik įsivaizduokite, vietoje to, kad aprauti serverį naudojant sesiją ar ViewState, jus galite saugoti šią informaciją tiesiogiai kliento naršyklėje!

Rodyk draugams

Spalio 28 - neeilinis .NET vartotojų grupės susitikimas Kaune

Parašė Sergejus | 2009-10-21 10:11

Staiga atsirado galimybė surengti spalio 26 (Vilniuje) ir 28 (Kaune) neeilinius .NET vartotojų grupės susitikimus su pranešėju iš Lenkijos. Pranešimas bus skirtas aptarti skirtingus kodo apsaugos būdus. Daugiau info - DotNetGroup.lt forume.

Parašykite, ar jums ši tema bus įdomi ir ar dalyvausite.

ATNAUJINTA

Dėl pranešėjo riboto laiko, organizuojame susitikimą tik Kaune. Registruotis galite čia. Esant norui, Vilniečiai gali irgi atvažiuoti.

Rodyk draugams

Visual Studio 2010 Beta 2 - jau prieinamas

Parašė Sergejus | 2009-10-19 17:23

VS2010

Prieš kelias minutes Visual Studio 2010 Beta 2 tapo prieinamas MSDN prenumeratoriams! Viešai ši versija turėtų pasirodyti spalio 22 dieną (per partnerių konferencija ji bus anonsuota). Kartu su Beta 2 keičiasi ir Visual Studio paketai, nuo dabar atsiranda Professional, Premium ir Ultimate (apie versijų pasikeitimus parašysiu vėliau). Kaip galite matyti, atsinaujino ir Visual Studio logotipas.

P.S.

Savo pristatymą partnerių konferencijoje aš rodysiu su Beta 2, tad turėsite gerą progą pamatyti naują beta versiją gyvai jau labai greitai.

Rodyk draugams

Artimiausi mano pristatymai

Parašė Sergejus | 2009-10-11 19:32

Kitą savaitę, spalio 15 dieną, pirmą kartą vyks T*nklas (ne)konferencija, skirta tinklaraščių rašytojams. Ją organizuoja gerai žinomas Lietuvos tinklaraščių erdvėje Džiugas Paršonis (nezinau.lt). Jos metu aš skaitysiu pranešimą (C-tapas, skirtas programuotojams) „Tinklaraščių platformų perkėlimas į Microsoft Azure (Oxite pagrindu)“. Jus vis dar galite registruotis į šį renginį!

tnklasw250

 

Kaip ir kiekvienais metais, šiais metais, spalio 22 dieną, Microsoft Lietuva organizuoja partnerių konferenciją. Šį kartą, organizuojami net keli pristatymai skirti programuotojams. Vieną iš tokių pristatymų – „Visual Studio 2010 naujovės: greitesnis kodo rašymas ir valdymas, nauji įrankiai testuotojams, Test Driven Development, patobulinimai architektams“ – darysiu aš. Jeigu jus dalyvausite kaip savo įmonės atstovas – labai jūsų laukiu! Pažadu, tai nebus .NET vartotojų grupės susitikimo metu darytas pristatymas ;)

partner_2009

Rodyk draugams

HTML 5 naršyklėse IE8 ir FF3.5 – 2 dalis – įvykiai online ir offline

Parašė Sergejus | 2009-10-07 20:19

Praeitame straipsnyje aš aprašiau gimtąjį (Native) JSON palaikymą naršyklėse IE8 ir FF3.5. Šiandien norėčiau aprašyti naujus HTML 5 įvykius online ir onoffline bei atributą navigator.onLine.

Kaip tikriausiai supratote, HTML 5 leis labai paprastai gauti prisijungimo prie tinklo būseną bei reaguoti į šios būsenos pasikeitimus. Noriu atkreipti dėmesį į tai, kad nustatoma būtent tinklo būseną, bet ne Interneto ryšio buvimas. Tai reiškia, kad tikrinama ar tinklo interfeisas yra įjungtas ir turi priėjimą prie tinklo bei žiūrima ar naršyklėje nėra įjungtas autonominis režimas (File → Work Offline).

Žemiau pateikiu labai paprastą puslapį, kuriame pasikrovimo metu atributo navigator.onLine pagalba nustatoma prisijungimo būsena bei įvykių online ir offline pagalba nurodoma kokį pranešimą rodyti (ONLINE ar OFFLINE). Suderinamumo dėlei, įvykio apdorojimo funkcijas aš nurodau ne tiesiogiai document.body, bet naudojant pagalbinę funkciją addHandler (IE8 reikėtų rašyti document.body.ononline, Firefox – document.body.online):

ie8_dev3

Rezultate mes turime puslapį, kuris momentaliai reaguoja į tinklo būsenos pasikeitimus:

ie8_dev4

Praktikoje, atpažinę kad tinklo būsena pasikeitė, jus galite išsaugoti duomenis į / pakrauti duomenis iš lokalios saugyklos, apie kurią rašysiu ateityje.

Rodyk draugams

HTML 5 naršyklėse IE8 ir FF3.5 – 1 dalis – gimtasis JSON palaikymas

Parašė Sergejus | 2009-10-05 20:07

Prieš kelias savaites man teko skaityti pranešimą „Internet Explorer 8 programuotojams“. Pristatymas sukėlė didžiulį susidomėjimą ir gavo geriausią renginio įvertinimą. Viena iš sėkmės priežasčių – pranešime aš nagrinėjau ne tiek IE8 specifines galimybes, bet labiau HTML5 naujoves (kurios yra palaikomos IE8). Šį savaitgalį kilo mintis parašyti kelių straipsnių ciklą iš dalinio HTML5 palaikymo Internet Explorer 8 ir Firefox 3.5 naršyklėse.

Šiandien trumpai aprašysiu vieną svarbiausių IE8 ir FF3.5 naujovių – gimtąjį (Native) JSON palaikymą (Chrome, Safari ir Opera kol kas to nepalaiko). Iki šiol egzistavo du galimi darbo su JSON būdai: nesaugi JavaScript funkcija eval() ir saugi, bet ne tokia greita Crockfordo JavaScript biblioteka JSON2.js. Atsiradus gimtajam JSON palaikymui, tampa saugu ir ypač efektyvu dirbti su JavaScript objektais. Tai yra daroma JSON.parse ir JSON.stringify metodų pagalba.

JSON.parse, kaip ir seka iš pavadinimo, moka saugiai konvertuoti perduotą eilutę JSON formatu į JavaScript objektą:

ie8_dev1

JSON.stringify, skirtingai nei JSON.parse, paverčia JavaScript objektą į tekstinę eilutę JSON formatu:

ie8_dev2

Kodėl verta naudoti gimtąjį JSON palaikymą? Jis yra saugus, labai greitas ir kas svarbiausia, ateityje bus palaikomas visose pagrindinėse naršyklėse (skaityk cross-browser).

Rodyk draugams

Pasirodė ASP.NET MVC 2 Preview 2

Parašė Sergejus | 2009-10-02 18:09

Pagaliau pasirodė antroji ASP.NET MVC 2 Preview versija. Šią versiją asmeniškai aš laukiau dėl kelių pagrindinių naujovių, kurias pabandysiu trumpai aprašyti.

Pagal nutylėjimą pirmoji Preview versija modelio validavimui naudojo DataAnnotations mechanizmą ir nebuvo jokio būdo panaudoti kitą validavimo biblioteką (pvz., NHibernate Validator arba Validation Application Block). Antroje Preview versijoje atsiranda klasės ModelMetadata, ModelMetadataProvider ir ModelValidatorProvider, leidžiančios pasirašyti reikalingus adapterius.

Kita svarbi naujovė - automatinis klientinės dalies validavimas. Dabar pagal DataAnnotations atributus bus generuojamas visas jQuery Validation bibliotekai reikalingas kodas. Šiuo metu automatinis klientinės dalies validavimas vyksta pagal tokius atributus:

  • StringLengthAttribute
  • RequiredAttribute
  • RegexAttribute
  • RangeAttribute

Naujoje versijoje tapo žymiai paprasčiau nurodyti HTTP metodo panaudojimą, pvz., vietoje AcceptVerbs(HttpVerbs.Get) atributo užtenka tiesiog panaudoti atributą HttpGet. Dabar prieinami tokie atributai:

  • HttpPostAttribute
  • HttpPutAttribute
  • HttpGetAttribute
  • HttpDeleteAttribute

Paskutinė svarbi naujovė - projekto sritys (Project Areas). Pirmoje Preview versijoje galima buvo sukurti tik vieną projekto sritį viename projekte, dabar šis apribojimas yra panaikintas ir viename projekte gali būti kelios sritys. Pagrindinis jų panaudojimo būdas - loginis ASP.NET MVC kodo grupavimas, pvz., administravimo sritis, anoniminių vartotojų sritis, registruotų vartotojų sritis ir pan.

Tiek trumpai apie ASP.NET MVC 2 Preview 2 naujoves ir gero naudojimosi!

Rodyk draugams