Despre obiectele obișnuite
Obiectele obișnuite funcționează ca cookie-urile din browser. Clasa SharedObject este utilizată pentru a stoca date pe hard diskul local al utilizatorului și pentru a apela aceste date în timpul aceleiași sesiuni sau ulterioare. Aplicațiile pot accesa numai propriile date SharedObject și numai atunci când sunt lansate pe același domeniu. Datele nu sunt trimise serverului și nu sunt disponibile pentru aplicațiile care rulează pe alte domenii, dar sunt disponibile pentru aplicații din același domeniu.
Compararea obiectelor partajate cu modulele cookie
Cookie-urile și obiectele comune au multe în comun. Deoarece majoritatea programatorilor web sunt familiarizați cu principiul cookie-urilor, va fi utilă compararea cookie-urilor cu SharedObjects locale.
În mod tipic, cookie-urile care respectă RFC 2109 au următoarele proprietăți:
Data expirării care expiră implicit la sfârșitul sesiunii.
numărul total maxim de cookie-uri este de 300, dar nu mai mult de 20 de fișiere pentru un site;
dimensiunea fișierului este limitată la 4 KB;
considerată uneori ca o amenințare la adresa securității, ca urmare a căror deconectare este posibilă pe computerul client;
Dosarul de salvare este indicat de browserul client;
Transferul de la client la server are loc prin intermediul HTTP.
Spre deosebire de modulele cookie, fișierele partajate au următoarele proprietăți:
nici o perioadă prestabilită;
Dimensiunea implicită a fișierului este limitată la 100 KB;
capacitatea de a stoca tipuri de date simple (de exemplu, String, Array și Date).
Dosarul de salvare este specificat de aplicație (în directorul de domiciliu al utilizatorului);
nu există transfer de la client la server.
Despre clasa SharedObject
Utilizând clasa SharedObject, puteți să creați și să ștergeți obiecte partajate, precum și să determinați dimensiunea actuală a aplicației SharedObject folosită.
Crearea obiectelor partajate
Pentru a crea un SharedObject, utilizați metoda SharedObject.getLocal () cu următoarea sintaxă:
Următorul exemplu descrie procesul de creare a unui obiect partajat numit mySO:
Astfel, un fișier cu numele preferences.sol este creat pe computerul client.
Noțiunea locală indică localizarea unui obiect obișnuit. În acest caz, Adobe® Flash® Player salvează fișierul SharedObject în directorul de domiciliu al clientului local.
Când creați un obiect partajat, Flash Player creează un nou director pentru aplicație și domeniu într-un mediu izolat. Se creează, de asemenea, un fișier .sol care stochează date SharedObject. Directorul implicit este subdirectorul directorului de domiciliu al utilizatorului. Următorul tabel arată locația posibilă a directorului implicit:
Numele directorului #SharedObjects este un director cu un nume arbitrar. Apoi urmează directorul al cărui nume este identic cu numele gazdei, apoi calea către aplicație și în final fișierul * .sol.
De exemplu, atunci când o aplicație cu numele MyApp.swf este localizată pe o gazdă locală într-un subdirector numit / sos, Flash Player salvează fișierul * .sol în următoarea cale (pentru Windows XP):
Notă. Dacă numele din metoda SharedObject.getLocal () nu este specificat. Playerul Flash atribuie numele de fișier undefined.sol.
În mod implicit, Flash poate stoca local obiecte SharedObject persistente de până la 100 KB în fiecare domeniu. Această valoare poate fi modificată de utilizator. Când încercați să salvați datele aplicației în obiectul partajat mărește dimensiunea sa la mai mult de 100 KB, Flash Player afișează caseta de dialog „Stocare locală“, în care utilizatorul poate activa sau dezactiva utilizarea de acces zapraschivayuschim domeniului de stocare locale multiple.
Definirea căii
Este posibil să utilizați parametrul de cale opțional pentru a specifica locația fișierului SharedObject. Acest fișier trebuie să fie un subdirector al folderului SharedObject pentru acest domeniu. De exemplu, când solicitați o aplicație pe gazda locală și introduceți următoarea linie:
Flash Player scrie fișierul SharedObject în directorul / # localhost (sau în directorul / localhost dacă aplicația este o aplicație offline). Utilizarea acestei caracteristici este cea mai justificată dacă aveți nevoie să accesați mai multe aplicații pentru același obiect partajat. În acest caz, clientul poate rula două aplicații Flex, fiecare dintre acestea având o cale către obiectul obișnuit de la rădăcina domeniului; atunci clientul va avea acces din ambele aplicații la același obiect partajat. Pentru a partaja date cu aplicații non-persistente, puteți utiliza obiectul LocalConnection.
Când introduceți un director inexistent, Flash Player nu creează un fișier SharedObject.
Adăugarea de date la un obiect obișnuit
Puteți adăuga date în fișierul * .sol SharedObject utilizând proprietatea de date a SharedObject. Pentru a adăuga date noi unui obiect obișnuit, utilizați următoarea sintaxă:
Următorul exemplu adaugă proprietățile utilizatoruluiName. itemNumbers și adminPrivilegii. precum și valorile acestora, la SharedObject:
După atribuirea valorilor proprietății de date, Flash Player trebuie să scrie aceste valori în fișierul SharedObject. Pentru a iniția scrierea valorilor într-un fișier SharedObject, utilizați metoda SharedObject. spălare (). de exemplu:
Dacă utilizatorul nu apelează metoda SharedObject.flush (). Flash Player scrie valori la un fișier când iese din aplicație. Cu toate acestea, această metodă nu permite utilizatorului să mărească spațiul disponibil în care Flash Player stochează date dacă depășește setările implicite atunci când este scris. Prin urmare, este recomandat să apelați metoda SharedObject.flush ().
Când se folosește metoda flush () pentru a scrie obiecte partajate pe hard disk unui utilizator ar trebui să fie atent pentru a verifica dacă utilizatorul nu are nici o stocare locală, utilizând opțiunile de manager Flash Player Setări manager (www.macromedia.com/support/documentation/ru/flashplayer/help /settings_manager07.html), așa cum se arată în exemplul următor.
Salvarea obiectelor în obiecte obișnuite
Obiectele simple, cum ar fi Arrays sau Strings, pot fi stocate în proprietatea de date SharedObject.
Următorul exemplu prezintă o clasă ActionScript care definește metodele care controlează interacțiunea cu un obiect partajat. Aceste metode permit utilizatorului să adauge și să elimine obiecte din obiectele partajate. În această clasă, clasa ArrayCollection care conține obiecte simple este stocată.
Conservarea obiectelor cu control strict de tip în obiecte obișnuite
Este posibil să salvați instanțe ActionScript cu control strict de tip în obiecte obișnuite. Această caracteristică este implementată apelând metoda flash.net.registerClassAlias () pentru a înregistra clasa. Atunci când creați o instanță a unei clase, stocați-o într-un obiect de date partajat și apoi trimițând date, utilizatorul va primi o instanță cu control strict de tip. În mod implicit, proprietatea SharedObject objectEncoding acceptă codificarea AMF3 și preia instanța salvată din SharedObject. Exemplul salvat păstrează același tip specificat când a fost apelată metoda registerClassAlias ().
(Numai pentru IOS) Prevenirea copierii obiectelor partajate locale în spațiul de stocare în cloud
Crearea obiectelor partajate multiple
Este posibil să creați mai multe obiecte obișnuite pentru o aplicație Flex. Pentru a face acest lucru, fiecărui obiect trebuie să i se atribuie un nume de instanță unic, de exemplu:
În acest fel, fișierele preferences.sol și history.sol sunt create în directorul local de aplicații Flex.
Crearea unei instanțe securizate a SharedObject
Atunci când o instanță SharedObject local sau la distanță folosind metoda getLocal () sau getRemote (). există un parametru suplimentar numit sigur. care determină dacă accesul la obiect partajat este permisă numai pentru SWF-fișiere prin HTTPS-conexiune. Dacă acest parametru este setat la true și SWF-fișier este livrat prin HTTPS, Flash Player Player creează un nou obiect partajat securizat sau devine o referință la un obiect partajat securizat existent. Acest obiect partajat securizat poate fi citit sau scris numai cele livrate prin protocolul HTTPS SWF-fișiere, care provoacă SharedObject.getLocal) metoda cu parametrul securizat având o valoare adevărată (. Dacă această opțiune este falsă și SWF-fișiere transmise prin HTTPS, Flash Player Player creează un nou obiect partajat sau devine o referință la un obiect partajat existent.
Acest obiect partajat poate fi citit sau scris de fișiere SWF care nu sunt livrate printr-o conexiune HTTPS. Dacă fișierul SWF nu este livrat printr-o conexiune HTTPS și încercați să setați acest parametru la adevărat. crearea unui nou obiect comun (sau accesul la un obiect partajat protejat creat anterior) va eșua, va apărea un mesaj de eroare și obiectul partajat va fi nul. Dacă încercați să executați următorul cod nu printr-o conexiune HTTPS, metoda SharedObject.getLocal () va arunca o eroare.
Indiferent de valoarea acestui parametru, obiectele partajate create se adaugă volumului total de spațiu disponibil pe domeniu.
Afișarea conținutului unui obiect partajat
În obiectele partajate, valorile sunt stocate în proprietatea datelor. Puteți afișa fiecare valoare într-o instanță SharedObject utilizând bucla for..in. ca în exemplul următor.
Ștergerea obiectelor obișnuite
Pentru a distruge SharedObject de la client, utilizați metoda SharedObject.clear (). Această metodă nu va elimina directoarele din calea prestabilită pentru obiectele comune de aplicație.
Exemplul ilustrează eliminarea fișierului SharedObject de pe computerul client:
Exemplu SharedObject
Următorul exemplu demonstrează capacitatea de a stoca obiecte simple, cum ar fi un obiect Date, într-un obiect SharedObject SharedObject, fără serializarea manuală și deserializarea acestor obiecte.
Următorul exemplu începe cu un salut al utilizatorului ca vizitator care a trecut prima înregistrare. Când faceți clic pe butonul Ieșire, aplicația salvează data curentă în obiectul partajat. Data viitoare când porniți această aplicație sau actualizați pagina, veți vedea un mesaj de întâmpinare cu o notificare cu privire la ora de ieșire din aplicație.
Pentru a vedea aplicația în acțiune, lansați aplicația, faceți clic pe butonul "Ieșire" și apoi actualizați pagina. Aplicația va afișa data și ora la care a fost apăsat ultima dată butonul "Ieșire". Informațiile salvate pot fi șterse în orice moment folosind butonul "Ștergeți obiectele comune partajate".