flex 客戶端快取

2022-02-16 15:49:50 字數 2679 閱讀 3281

"moduleone" version="beta01"

/>

"moduletwo" version="beta01"

/>

"myswf" version="beta01"

/>

*當然,配置檔案的路徑,和名字可以由你任取,但需要在版本控制時指定路徑,下面將介紹如何啟動版本控制

*id屬性,標記這個快取的名字,將會在全域性使用,包括快取的sharedobject名稱,以及版本控制,下面讀取快取時將會使用到這個id

*version版本控制,隨你起名稱。但是為了確保不會與以前的版本混淆,推薦最好還是使用遞增的版本名稱

首先必須在快取的使用之前先啟動版本控制,需要匯入以下包:

import warmc.cache.locationdataproxy;
然後啟動版本控制:

locationdataproxy.getinstance().cacherebuild(0.5);
cacherebuild(size:int,configurl:string)方法使用說明:

* size引數,指定快取的總大小,單位為兆(m),不填則預設為1m即執行到這個地方時,就會判斷客戶端的sharedobject 允許快取大小,再提示使用者修改快取最大值設定如果你需要快取的資料較大,則可對應取下面的值

size<=0 不提示,或者預設客戶端的100kb

0<1 快取1mb以內的資料

1<=size<10 快取10mb以內的資料

10<=size 快取無限大的資料

例如:你需要快取的檔案總大小為700k,你可以設定size=0.7,這樣子,就會在啟動版本控制的是很對使用者進行詢問,而且保證使用者同意快取以後不會再次詢問

* configurl,是指配置檔案xml位址,預設是在根目錄'cache_config.xml',必須指定,並且配置檔案格式必須與demo格式一致

* 當配置檔案正確無誤時,版本控制啟動成功,會讀取伺服器端配置,與客戶端快取進行版本比較。版本不同的話,將客戶端快取刪除。如果版本控制啟動失敗,會導致客戶端的快取與伺服器端的快取無法同步。

設定快取人性化功能

locationdataproxy.getinstance().warm_human(true);
warm_human(bool:boolean)說明:

* flashplayer的sharedobject,在使用超過客戶端的設定大小後,就會提示使用者,並徵求其意見,是否同意**的快取

* 如果,在系統需要快取多個資料時,而且使用者拒絕了快取,系統將會在每次需要寫入sharedobject時,都進行詢問是否允許快取,這樣的使用者體驗十分糟糕。

*當設定warm_huma為true時,在第一次提示使用者是否允許程式快取改大小後,如果使用者拒絕了,以後的快取將不會再提示,也不會再在客戶端快取,直到使用者再次執行此程式(

,雖然是有點煩人,但嫌麻煩,多數人不會在意那幾m的空間,而點了允許)

* false,不管使用者是否拒絕,每次需要增大快取區大小時,都會提示使用者

* 不使用該方法,預設為true。所以這個方法很少用到。

確保版本控制啟動成功後,可以進行module載入,先導入以下包:

import warmc.cache.modulecacheproxy;
載入module

* load(name:string,url:string,onprogress:function,onready:function)說明:

* name,指的是module在配置檔案cache_config檔案中的id,此處必須與配置檔案一致。用於版本控制,以及

客戶端的快取檔名,通過name獲取sharedobject

* url,指的是module的swf檔案路徑,demo的module檔案均在根目錄,所以直接指定名稱

* onprogress,指載入module時的進度**方法,傳回兩個引數,bytesloaded與bytestotal,若需要顯示進度條,則這個方法是必備的。如果快取不存在,則bytesloaded與bytestotal會是從伺服器端載入資料的值;

如果快取已經存在,則該方法只呼叫一次,而且兩個回傳引數均是100

* onready,指載入完成後的**方法,傳回乙個uicomponent型別的引數data

* **器使用了餓漢單例模式,檢測module是否已經快取在客戶端。

* 如果已經快取在客戶端,則直接讀取

* 否則,從伺服器端載入,顯示,再快取到客戶端,打上版本。

載入swf(非module),需匯入以下包:

import warmc.cache.swfcacheproxy;
載入swf:

* load(name:string,url:string,onprogress:function,onready:function)說明:

*屬性作用與modulecacheproxy一樣

*唯一不同點,onready方法的回傳引數為乙個bytearray,需要自己進行包裝目前使用起來就是這樣。你可以使用swfcacheproxy來快取**style.swf,遊戲外掛程式,資源等等swf資料。

在例子中,有個「載入module 2」:

客戶端快取

你的 在併發訪問很大並且無法承受壓力的情況下,你會選擇如何優化?很 多人首先會想從伺服器快取方面著手對程式進行優化,許多不同的伺服器快取方式都有他們自己的特點,像我曾經參與的一些專案中,根據快取的命中率不同使用過 com enterprise libiary caching windows服務,靜態...

php http 快取 客戶端快取

expires 過期時間 cache control 響應頭資訊 max age 秒 快取過期時間 請求時間開始到過期時間的秒數 s maxage 秒 快取過期時間 public 標記認證內容能被快取,一般而言輸出是不能被快取的,no cache 無快取,表示直接讀取資料源,no store 強制快...

禁用客戶端快取

1 禁用客戶端快取 html asp response.expires 1 response.expiresabsolute now 1 response.cachecontrol no cache php header expires mon,26 jul 1997 05 00 00 gmt he...