本發(fā)明涉及網站前端技術領域,具體涉及一種網站前端的數據緩存系統及方法。
背景技術:
當前網站前端技術發(fā)展迅速,前端業(yè)務量逐漸增大,前端需要處理的數據也就越來越多?,F有的前端瀏覽器只能存儲字符串數據,不能存儲其他類型的數據,網站開發(fā)人員每次都得手動將從服務器獲取的其他類型數據轉換成字符串數據,然后存入瀏覽器緩存,用的時候再取出來,轉換成需要的數據類型。因此,現有的網站前端的數據緩存方法操作繁瑣,且效率低下,導致每次從服務器獲取數據都存在延遲,用戶體驗較差。
技術實現要素:
本發(fā)明的目的是為了克服上述背景技術的不足,提供一種網站前端的數據緩存系統及方法,本發(fā)明能夠高效處理前端業(yè)務,提高用戶體驗。
本發(fā)明提供一種網站前端的數據緩存系統,該系統與后端的服務器交互,該系統包括控制單元、緩存單元,該系統還包括中間層組件,中間層組件包括多組數據接口,每組數據接口包括設置接口和相應的讀取接口,每組數據接口支持一種數據類型,所述數據類型包括基本類型和非基本類型;
所述控制單元用于:存入非基本類型數據時,從服務器獲取非基本類型數據,并調用中間層組件中支持非基本類型數據的設置接口;讀取非基本類型數據時,調用中間層組件中支持非基本類型的讀取接口;存入基本類型數據時,從服務器獲取基本類型數據,并調用中間層組件中支持基本類型數據的設置接口;讀取基本類型數據時,調用中間層組件中支持基本類型數據的讀取接口;
所述中間層組件用于:存入非基本類型數據時,將非基本類型數據轉換成字符串數據后,再將所述字符串數據寫入緩存單元;讀取非基本類型數據時,從緩存單元中取出所述字符串數據,轉換成非基本類型數據,返回給控制單元;存入基本類型數據時,直接將所述基本類型數據寫入緩存單元;讀取基本類型數據時,從緩存單元中取出所述基本類型數據,直接返回給控制單元。
在上述技術方案的基礎上,所述基本類型包括字符串類型、整數型、浮點型。
在上述技術方案的基礎上,所述非基本類型包括列表類型、哈希類型。
在上述技術方案的基礎上,所述非基本類型為列表類型,存入非基本類型數據時,中間層組件將非基本類型數據轉換成字符串數據的具體過程為:列表類型數據由多個元素組成,中間層組件將列表類型數據的各個元素取出,然后將每個元素用逗號進行連接,形成字符串數據;
讀取非基本類型數據時,中間層組件將字符串數據轉換成非基本類型數據的具體過程為:中間層組件從緩存單元中取出字符串數據,先以逗號為分隔符對字符串數據做分解,得到每一個元素,然后將所有元素組合成列表類型數據。
在上述技術方案的基礎上,所述非基本類型為哈希類型,存入非基本類型數據時,中間層組件將非基本類型數據轉換成字符串數據的具體過程為:哈希類型數據由“鍵-值”兩部分組成,中間層組件依次循環(huán)取出每組鍵值對,然后用冒號將鍵值對進行組合,再將所有鍵值對用逗號進行連接,形成字符串數據;
讀取非基本類型數據時,中間層組件將字符串數據轉換成非基本類型數據的具體過程為:中間層組件從緩存單元中取出字符串數據,先以逗號為分隔符分解字符串數據,得到每一組鍵值對,再以冒號為分隔符將每一組鍵值對進行分解,得到每一項鍵和值,然后將所有鍵和值合并成哈希類型數據。
本發(fā)明提供一種網站前端的數據緩存方法,包括以下步驟:
存入非基本類型數據時,控制單元從服務器獲取非基本類型數據,并調用中間層組件中支持非基本類型數據的設置接口,所述支持非基本類型的設置接口將非基本類型數據轉換成字符串數據后,再將所述字符串數據寫入緩存單元;
讀取非基本類型數據時,控制單元調用中間層組件中支持非基本類型的讀取接口,所述支持非基本類型的讀取接口從緩存單元中取出所述字符串數據,轉換成非基本類型數據,返回給控制單元;
存入基本類型數據時,控制單元從服務器獲取基本類型數據,并調用中間層組件中支持基本類型數據的設置接口,所述支持基本類型數據的設置接口直接將所述基本類型數據寫入緩存單元;
讀取基本類型數據時,控制單元調用中間層組件中支持基本類型數據的讀取接口,所述支持基本類型數據的讀取接口從緩存單元中取出所述基本類型數據,直接返回給控制單元。
在上述技術方案的基礎上,所述基本類型包括字符串類型、整數型、浮點型。
在上述技術方案的基礎上,所述非基本類型包括列表類型、哈希類型。
在上述技術方案的基礎上,所述非基本類型為列表類型,列表類型數據由多個元素組成,存入列表類型數據時,中間層組件將列表類型數據轉換成字符串數據的具體過程為:中間層組件將列表類型數據的各個元素取出,然后將每個元素用逗號進行連接,形成字符串數據;
讀取列表類型數據時,中間層組件將字符串數據轉換成列表類型數據的具體過程為:中間層組件從緩存單元中取出字符串數據,先以逗號為分隔符對字符串數據做分解,得到每一個元素,然后將所有元素組合成列表類型數據。
在上述技術方案的基礎上,所述非基本類型為哈希類型,哈希類型數據由“鍵-值”兩部分組成,存入哈希類型數據時,中間層組件將哈希類型數據轉換成字符串數據的具體過程為:中間層組件依次循環(huán)取出每組鍵值對,然后用冒號將鍵值對進行組合,再將所有鍵值對用逗號進行連接,形成字符串數據;
讀取哈希類型數據時,中間層組件將字符串數據轉換成哈希類型數據的具體過程為:中間層組件從緩存單元中取出字符串數據,先以逗號為分隔符分解字符串數據,得到每一組鍵值對,再以冒號為分隔符將每一組鍵值對進行分解,得到每一項鍵和值,然后將所有鍵和值合并成哈希類型數據。
與現有技術相比,本發(fā)明的優(yōu)點如下:
本發(fā)明的系統位于網站前端,該系統包括控制單元和緩存單元,緩存單元用于存儲瀏覽器的緩存數據,在控制單元和緩存單元之間建立一個中間層組件,控制單元通過中間層組件存入和讀取特定類型的數據,中間層組件用于處理數據類型的轉換。需要緩存某種類型數據的時候,通過調用中間層組件的相應設置接口,中間層組件內部把數據類型自動轉換為字符串數據,然后寫入瀏覽器緩存。需要讀取數據的時候,通過調用中間層組件的相應讀取接口,中間層組件從瀏覽器緩存中取出字符串數據并自動轉換成對應的數據類型,返回給控制單元。本發(fā)明能夠高效處理前端業(yè)務,提高用戶體驗。
附圖說明
圖1是本發(fā)明實施例中數據緩存系統的結構示意圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明作進一步的詳細描述。
參見圖1所示,本發(fā)明實施例提供一種網站前端的數據緩存系統,該系統與后端的服務器交互,該系統包括控制單元、緩存單元,緩存單元用于存儲瀏覽器的緩存數據;該系統還包括中間層組件,中間層組件包括多組數據接口,每組數據接口包括一個設置接口和一個相應的讀取接口,每組數據接口支持一種數據類型,數據類型包括基本類型和非基本類型,基本類型包括字符串類型、整數型、浮點型,非基本類型包括列表類型、哈希類型;
控制單元用于:存入非基本類型數據時,從服務器獲取非基本類型數據,并調用中間層組件中支持非基本類型數據的設置接口;讀取非基本類型數據時,調用中間層組件中支持非基本類型的讀取接口;存入基本類型數據時,從服務器獲取基本類型數據,并調用中間層組件中支持基本類型數據的設置接口;讀取基本類型數據時,調用中間層組件中支持基本類型數據的讀取接口;
中間層組件用于:存入非基本類型數據時,支持非基本類型數據的設置接口將非基本類型數據轉換成字符串數據后,再將該字符串數據寫入緩存單元;讀取非基本類型數據時,支持非基本類型數據的讀取接口從緩存單元中取出該字符串數據,轉換成非基本類型數據,返回給控制單元;存入基本類型數據時,支持基本類型數據的設置接口直接將該基本類型數據寫入緩存單元;讀取基本類型數據時,支持基本類型數據的讀取接口從緩存單元中取出該基本類型數據,直接返回給控制單元。
本發(fā)明實施例提供一種應用于上述系統的數據緩存方法,包括以下步驟:
存入非基本類型數據時,控制單元從服務器獲取非基本類型數據,并調用中間層組件中支持非基本類型數據的設置接口,該設置接口將非基本類型數據轉換成字符串數據后,再將該字符串數據寫入緩存單元;
讀取非基本類型數據時,控制單元調用中間層組件中支持非基本類型的讀取接口,該讀取接口從緩存單元中取出該字符串數據,轉換成非基本類型數據,返回給控制單元;
存入基本類型數據時,控制單元從服務器獲取基本類型數據,并調用中間層組件中支持基本類型數據的設置接口,該設置接口直接將該基本類型數據寫入緩存單元;
讀取基本類型數據時,控制單元調用中間層組件中支持基本類型數據的讀取接口,該讀取接口從緩存單元中取出該基本類型數據,直接返回給控制單元。
列表類型數據由多個元素組成,例如,列表類型數據的結構為:[x,y,z],包括x,y,z三個元素,當存入的非基本類型數據為列表類型時,中間層組件可以將其各個元素取出,然后將每個元素用逗號進行連接,形成“x,y,z”格式的字符串數據后,將該字符串數據寫入瀏覽器緩存。讀取列表類型數據時,控制單元調用中間層組件中支持列表類型數據的讀取接口,中間層組件先以逗號為分隔符對緩存的字符串數據做分解,得到每一個元素,然后將所有元素組合成列表類型數據,返回給控制單元。
哈希類型數據由“鍵-值”兩部分組成,例如,哈希類型的結構為:{key:value,key2:value2},包括key:value和key2:value2兩組鍵值對,當存入的非基本類型數據為哈希類型時,中間層組件可以依次循環(huán)取出每組鍵值對,然后用冒號將鍵值對組合成"key:value"形式,再將所有鍵值對用逗號進行連接,形成"key:value,key2:value2"格式的字符串數據后,將該字符串數據存入瀏覽器緩存。讀取哈希類型數據時,控制單元調用中間層組件中支持哈希類型數據的讀取接口,由于緩存數據的每一組鍵值對都是用逗號分隔的,所以中間層組件先以逗號為分隔符分解緩存的字符串數據,得到每一組鍵值對,每一組鍵值對又是以冒號分隔的,進而中間層組件再以冒號為分隔符分解每一組鍵值對,得到每一項“鍵”和“值”,然后將所有合并成哈希類型數據,返回給控制單元。
字符串類型數據結構為為一段連續(xù)的字符序列,例如為“content”形式,控制單元調用中間層組件中支持字符串類型的設置接口,中間層組件對該類型數據不做處理,直接寫入瀏覽器緩存。讀取字符串類型數據時,控制單元調用中間層組件中支持字符串類型的讀取接口,中間層組件從瀏覽器緩存讀取字符串類型數據后不做處理,直接返回給控制單元。
整數型數據的結構為一個整數,例如為“123”,控制單元調用中間層組件中支持整數型的設置接口,中間層程序拿到該類型數據不做處理,直接寫入瀏覽器緩存。讀取整數型數據時,控制單元調用中間層組件中支持整數型的讀取接口,中間層組件從瀏覽器緩存讀取整數型數據后不做處理,直接返回給控制單元。
浮點型數據的結構為一個小數,例如為“123.123”,控制單元通過調用中間層組件中支持浮點型的設置接口設置該數據,中間層程序拿到該類型數據不做處理,直接寫入瀏覽器緩存。讀取浮點型數據時,控制單元調用中間層組件中支持浮點型的讀取接口,中間層組件從瀏覽器緩存讀取浮點型數據后不做處理,直接返回給控制單元。
本發(fā)明中出現的部分名詞解釋如下:
中間層組件:介于控制單元和瀏覽器之間的一個組件,用于處理數據類型的轉換。本發(fā)明通過定義列表類型、哈希類型、字符串類型、整數型、浮點型這幾種數據類型以及對應的設置方法和讀取方法,讓服務器和前端數據格式一一對應,而列表類型、哈希類型、字符串類型、整數型、浮點型這幾種數據類型會通過上述定義的方法轉換為瀏覽器可識別的字符串數據。本發(fā)明把這里定義的類型以及這些方法統稱為中間層組件。
列表類型(List類型):中間層數據類型的一種,用于存儲一組連續(xù)的可重復的數據。
哈希類型(Map類型):中間層數據類型的一種,是一個數據集合,數據由“鍵-值”兩部分組成,集合中“鍵”不可以重復。
字符串類型(String類型):中間層數據類型的一種,用于存儲一段連續(xù)的字符序列。
整數型(Int類型):中間層數據類型的一種,用于存儲一個整數。
浮點型(Float類型):中間層數據類型的一種,用于存儲一個小數。
接口:一組操作某種數據類型的方法。
操作List類型數據的接口如下:
設置接口:setList(name,value)
讀取接口:getList(name)
操作Map類型數據的接口如下:
設置接口:setMap(name,value)
讀取接口:getMap(name)
操作String類型數據的接口如下:
設置接口:setString(name,value)
讀取接口:getString(name)
操作Int類型數據的接口如下:
設置接口:setInt(name,value)
讀取接口:getInt(name)
操作Float類型數據的接口如下:
設置接口:setFloat(name,value)
讀取接口:getFloat(name)
本領域的技術人員可以對本發(fā)明實施例進行各種修改和變型,倘若這些修改和變型在本發(fā)明權利要求及其等同技術的范圍之內,則這些修改和變型也在本發(fā)明的保護范圍之內。
說明書中未詳細描述的內容為本領域技術人員公知的現有技術。