Studiu - dev, arhiva blog, persistjs și taffydb

PersistJS și TaffyDB. Cum să reglați o bază de date aproape reală în browser. Partea 2

În orice caz, puteți efectua inițializarea persistjs numai după ce html-codul paginii a fost încărcat de atunci. acest lucru este necesar pentru strategiile de stocare a datelor precum "flash" și "ie". Acum voi da codul pentru funcția initDB:






Primul parametru la crearea obiectului Persist.Store este numele depozitului. Puteți crea un număr nelimitat de depozite, dar numele fiecăruia dintre ele sunt constrânse: numele trebuie să înceapă cu o literă latină și să nu conțină caractere speciale. de caractere. pentru că pentru persistjs ascunde întreaga opt strategii de stocare a datelor, atunci pentru unele dintre ele este necesar să se specifice setările speciale. Aproape singura setare este utilă swf_path parametru - calea către Flash-film, prin care persistjs va păstra informații în cazul în care strategia „unelte“, „localStorage“, „whatwg_db“, „globalstorage“ nu a venit. Fișierul cu filmul flash este atașat la persistjs distributiv și ia doar jumătate. domeniu de parametri, expiră și calea necesară pentru „ultimul“ o strategie cookie și să definească domeniul pentru care va fi disponibil la datele stocate, urmate de păstrare a datelor și directorul de pe server (numai fișierele plasate sub acest director va avea acces la informațiile stocate) . Din păcate, problema privind disponibilitatea pentru alte tehnologii de stocare a modului de specificare a duratei de viață a informațiilor, disponibilitatea mijloacelor de a "împărtăși informații" între mai multe subdomenii ale rețelei, a rămas fără un răspuns pozitiv. De asemenea, nu există răspuns pozitiv la întrebarea: este posibil să vedeți informațiile salvate pe pagina web utilizând browserul "A" dacă deschideți aceeași pagină în browserul "B". Singura excepție este tehnica de stocare a datelor utilizând un bec. În acest caz, puteți să salvați datele pe o pagină web, de exemplu, în firefox, apoi să deschideți aceeași pagină în Opera și să vedeți datele salvate anterior.

Să ne întoarcem la descrierea pașilor persistenți după ce am sunat la "nou Persist.Store". Aici persistjs va crea un depozit (tipul de depozituri disponibile a fost definit chiar mai devreme, imediat după încărcarea fișierului persist.js). Când am început exemplul din browserul Chrome, a apărut o fereastră de dialog (a se vedea figurile 1 și 2),

Studiu - dev, arhiva blog, persistjs și taffydb

Studiu - dev, arhiva blog, persistjs și taffydb

în care am fost întrebat dacă este posibil să permiteți site-ului să lucreze cu unelte. Dacă răspundeți la întrebare pozitiv, atunci persistjs va crea o tabelă simplă a două câmpuri "cheie" și "valoarea" acesteia. Dacă inițializați persistjs în browser-ul Opera 10, atunci va fi încorporat un film flash pe pagină. Browser ie 8 și mozilla firefox 3 vor stoca datele folosind domStorages (în Figura 4

Studiu - dev, arhiva blog, persistjs și taffydb






arată cum să activați și să dezactivați domstraturile în setările IE). Dacă sunteți un urmaș al safari, atunci veți avea date stocate în baza de date whatwg_db (dispozitivul de tabletare pentru stocarea informațiilor este exact la fel ca în cazul uneltelor google). În Fig. 3

Studiu - dev, arhiva blog, persistjs și taffydb

Am arătat fereastra de setări pentru safari, unde puteți vedea o listă cu toate bazele de date care au fost înregistrate pe computer; acolo puteți schimba dimensiunea spațiului pentru fiecare dintre bazele de date. Un mic dezavantaj al persistjs-ului este lipsa capacității de a verifica care sunt tehnologiile de stocare disponibile, fără a trebui să creeze un depozit. Pe de altă parte, puteți utiliza următorul test simplu:

Un alt dezavantaj persistjs este că lista și ordinea în care persistjs sortează prin metode alternative de stocare nu pot fi schimbate. De fapt, dacă vă decideți să crească prioritatea domStorages și a pus-o în fața unelte-bază de date, atunci trebuie să editați codul persist.js biblioteca (deși nu este dificil să ne dăm seama exact 10 kilobyți cod competent în scris). Un alt dezavantaj în persistjs va fi clar dacă luați în considerare următorul scenariu. Să presupunem că browserul are un suport formal pentru uneltele google și în acest caz browserul va cere clientului permisiunea de a salva date. Dar dacă clientul răspunde cu un refuz, persistjs nu va continua căutarea altor metode de conservare a datelor și va fi într-o poziție incertă. Continuând tema imperfecțiunilor în persistjs, putem observa problema potențială a "cursei de fir" atunci când lucrăm cu flash-storage. Lucrul este că, de îndată ce ați apelat la metoda "new Persist.Store", persistjs încorporează pe html-page un film flash, ale cărui funcții sunt ulterior apelate ori de câte ori aveți nevoie pentru a salva sau a încărca informații. Dar, deși fișierul swf durează doar jumătate de kilobyte, există o mică șansă că veți apela o metodă de citire sau de salvare a datelor în seif înainte ca filmul să fie încărcat. Și acest lucru nu trebuie să menționăm că traficul flash ar putea fi elementar "tăiat" de serverul proxy corporate; și nu veți ști niciodată despre asta. Un alt dezavantaj al lucrului cu flash-storage este manipularea incorectă a situației când informațiile pe care doriți să le stocați nu se potrivesc în 100 kilobytes. 100 KB este limita prestabilită pentru dimensiunea memoriei flash. În practică, dacă nu aveți spațiu suficient, puteți oricând să îi cereți utilizatorului să aloce un spațiu mai mic. Pentru a înțelege în mod clar ce vreau să spun, te sfătuiesc să deschidă exemplul sursă PersistStore.as cod fișier și uita-te la codul pentru funcția de „set“ (stocarea informațiilor în depozit). Din punct de vedere tehnic, atunci când apelați metoda de spălare în interiorul filmului flash pentru a salva modificările, flash player-ul va verifica dacă limita de stocare curentă pentru obiectul comun este depășită. Și dacă da, atunci metoda de spălare se va întoarce ca valoare a unei linii speciale de „așteptare“, iar pe ecran, pe fundalul unui bliț-film, o fereastra pop-up cu setările blițului, care servește pentru a crește scaunul rezervat pentru stocarea datelor (vezi. Fig. 5 ).

Studiu - dev, arhiva blog, persistjs și taffydb

Folosind funcția "set", nu apar întrebări. este nevoie doar de doi parametri: numele variabilei și valoarea care trebuie salvată. Dar exemplul de lucru cu funcțiile "get" și "delete" este mai complicat. Faptul este că unele dintre tehnologiile de stocare își asumă activitatea în mod asincron. Ie apelarea metodei "informații despre încărcare" nu returnează imediat rezultatul, ci începe executarea lucrărilor sale în paralel cu firul principal al comenzilor aplicației. Și pentru a semnaliza finalizarea lucrărilor, se efectuează o operație specială de "apel invers" sau apel invers sau operația de gestionare a evenimentului ". Astfel, în cadrul operațiunilor de apel invers funcție de citire Exemplu (get) are doi parametri: primul - is_ok - semn indică funcționarea cu succes, iar al doilea parametru stochează de fapt, informațiile descărcate din depozit. În cazul operație de ștergere, de apel invers-funcție primește, de asemenea, semnul primului parametru dacă persistjs găsi o intrare care urmează să fie șters și dacă da s-ar putea, a doua funcție de parametri stochează vechea valoare a variabilei eliminate.

Astăzi, am planificat pentru a finaliza povestea de partajare și persistjs taffydb, dar a fost dus de val și nu au avut timp pentru a merge la povestea despre cum poți salva nu pereche simplă „cheie-valoare“, dar obiecte complexe cu taffydb. Și poate e pentru cele mai bune, pentru că data viitoare pot să consacrez un articol nu numai taffydb, ci și prietenei sale "jlinq".







Articole similare

Trimiteți-le prietenilor: