flex共享對象詳解(個人總結)

參考文章:http://flexria.blog.51cto.com/753638/156708
          http://kb2.adobe.com/cps/526/52697ee8.html

 

1、什麼是共享對象:
SharedObject(共享對象)可以看作是小型的數據庫,它用來存儲任何Flash支持的數據類型,比如數字、字符串、數組和對象等等。
SharedObject按存放位置可分爲本地型(存在客戶端)和遠程型(存在服務器端)。本地型共享對象的擴展名爲.sol。
對於Windows98(me)用戶來說,默認的存儲路徑是:Application Data\Macromedia\Flash Player\服務器域名路徑\Flash電影文件名.swf;
對於Windows2000(xp)用戶來說,默認的存儲路徑是:Documents and Settings\[User]\Application Data\Macromedia\Flash Player\服務器域名路徑\Flash電影文件名.swf。
本地型共享對象只能將數據保存在默認路徑下,而且擴展名只能是.sol。
在網上有看到說該方法受文件大小的限制,最大爲1K,但經過反覆實驗發現,該方法並不受文件大小限制。


2、如何創建一個本地型共享對象:
要創建一個SharedObject對象,可以使用SharedObject.getLocal()方法,語法如下:
SharedObject.getLocal("objectName" [, pathname]): SharedObject
下列例子創建了一個叫做sObj的本地型共享對象:
private var sObj:SharedObject = SharedObject.getLocal("hello");
這將在客戶端創建一個叫做hello.sol的文件,sObj就是本地型共享對象。


3、關於SharedObject類
使用SharedObject類,你可以創建和刪除共享對象。SharedObject類主要包含下列屬性和方法:
屬性                 描述
data           描述了共享對象保存的屬性集合的只讀屬性
onStatus       共享對象的事件處理器
方法                 描述
clear()        刪除SharedObject中的所有數據,並且從磁盤中刪除SharedObject的所有屬性。
flush()        立即向客戶端寫入SharedObject
getLocal()     返回客戶端域定義的本地共享對象的引用。如果不存在共享對象,這個方法將創建一個新的共享對象。
getSize()      獲得共享對象文件的大小。默認上線是100k,如果客戶端允許,還可以更大。


4、共享對象與Cookie:
共享對象功能就像瀏覽器的cookie。你可以使用SharedObject類來在用戶的本地磁盤上保存數據,並且在當前的會話或之後的會話中調用那些數據。
程序祝你能訪問它們自己的SharedObject數據,並且只能在他們欲行在相同的域的時候可以。
這些數據不會被髮送到服務器,並且不能被運行在其他域下的Flex曾需訪問,但是可以來自同一域中的Flex程序訪問。
比較共享對象與Cookie
Cookie和共享對象都非常簡單。因爲大多數web程序員都很熟悉cookie的工作原理,這有助於對比cookie和本地共享對象。
Cookie遵循RFC 2109標準生成,並且擁有下列屬性:
它們可以過期,通常默認在會話結束時過期;
它們可以被禁用;
最多可以有300個Cookie,並且每個站點最多可以有20個cookie;
每個Cookie通常被限制在4k大小;
某些情況下,它們會被認爲是安全隱患,因而在客戶端被禁用;
它們存儲在由客戶端瀏覽器指定的位置;
它們通過HTTP協議從客戶端傳遞到服務器。
作爲比照,共享對象有如下屬性:
默認情況下不會過期;
默認情況下,它們被限定在每個100K大小;
它們可以保存簡單數據類型(例如String,Array和Date);
它們被保存在由程序定義的位置(在用戶的主目錄下);
它們永遠不會從客戶端傳遞到服務器。

發佈了78 篇原創文章 · 獲贊 0 · 訪問量 4542
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章