亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種web平臺(tái)數(shù)據(jù)緩存的方法和系統(tǒng)的制作方法

文檔序號(hào):7766186閱讀:510來(lái)源:國(guó)知局

專利名稱::一種web平臺(tái)數(shù)據(jù)緩存的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及互聯(lián)網(wǎng)
技術(shù)領(lǐng)域
,特別是涉及一種基于Web平臺(tái)的瀏覽器緩存的方法和系統(tǒng)。
背景技術(shù)
:隨著通信技術(shù)的發(fā)展由于瀏覽覽器/服務(wù)器(B/S,Browser/Server)結(jié)構(gòu)相對(duì)于客戶端/服務(wù)器(C/S,Cient/Server)結(jié)構(gòu)的優(yōu)越性基于B/S結(jié)構(gòu)(WEB應(yīng)用)開(kāi)發(fā)的業(yè)務(wù)越來(lái)越多,涉及的范圍也越來(lái)越廣泛。TOB應(yīng)用是B/S結(jié)構(gòu)的重要實(shí)現(xiàn)方式,通過(guò)TOB技術(shù)研發(fā)的應(yīng)用系統(tǒng)存在著一個(gè)并發(fā)訪問(wèn)的問(wèn)題用戶只要能連接網(wǎng)絡(luò),便可通過(guò)瀏覽器在任何地點(diǎn)都可以訪問(wèn)服務(wù)器,因此用戶并發(fā)訪問(wèn)同一個(gè)服務(wù)器的數(shù)目有可能會(huì)很大,大量的用戶并發(fā)訪問(wèn)會(huì)給服務(wù)器帶來(lái)很大處理壓力,經(jīng)常會(huì)出現(xiàn)資源不夠用的情況(CPU被占據(jù)100%,內(nèi)存溢出,連接不夠用等)。因此能在不影響客戶端操作的情況下盡量降低服務(wù)端傳輸壓力是目前web技術(shù)發(fā)展的一大趨勢(shì)。緩存是指在本地使用的電腦中開(kāi)辟一個(gè)空間,作為數(shù)據(jù)傳輸?shù)木彌_區(qū)。瀏覽器緩存(BrowserCaching)是為了加速瀏覽,瀏覽器在用戶磁盤(pán)上對(duì)最近訪問(wèn)過(guò)的頁(yè)面信息進(jìn)行存儲(chǔ),當(dāng)訪問(wèn)者再次請(qǐng)求這個(gè)頁(yè)面時(shí),瀏覽器就可以從本地磁盤(pán)顯示文檔,這樣就可以加速頁(yè)面的閱覽。緩存的方式節(jié)約了網(wǎng)絡(luò)的資源,提高了網(wǎng)絡(luò)的效率。
發(fā)明內(nèi)容本發(fā)明公開(kāi)了一種TOB平臺(tái)數(shù)據(jù)緩存的方法,包括客戶端模塊從服務(wù)端模塊網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息;所述數(shù)據(jù)單元屬性主要包括數(shù)據(jù)單元是否可供客戶端模塊緩存、更新級(jí)別、版本等信息;客戶端模塊根據(jù)所述網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息分析所述網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元;如果網(wǎng)頁(yè)中存在需要緩存數(shù)據(jù)單元,判斷客戶端模塊本地是否存在所述需要緩存的數(shù)據(jù)單元;如果客戶端模塊本地不存在需要緩存的數(shù)據(jù)單元,從服務(wù)端模塊請(qǐng)求獲取所述需要緩存的數(shù)據(jù)單元,進(jìn)行本地存儲(chǔ),并生成所述數(shù)據(jù)單元的版本信息;如果本地存在所述需要緩存的數(shù)據(jù)單元,判斷該需要緩存的數(shù)據(jù)單元的屬性信息中的更新級(jí)別;根據(jù)所述更新級(jí)別對(duì)所述需要緩存的數(shù)據(jù)單元進(jìn)行獲取。優(yōu)選地,所述判斷該需要緩存的數(shù)據(jù)單元的屬性信息中的更新級(jí)別中,所述更新級(jí)別包括從不更新、偶爾需要更新、經(jīng)常需要更新;所述根據(jù)所述更新級(jí)別對(duì)所述需要緩存的數(shù)據(jù)單元進(jìn)行獲取進(jìn)一步為如果所述需要緩存的數(shù)據(jù)單元的更新級(jí)別為從不更新,每次訪問(wèn)網(wǎng)頁(yè)時(shí),客戶端模塊從本地讀取該數(shù)據(jù)單元進(jìn)行加載;如果該數(shù)據(jù)單元的更新級(jí)別為偶爾需要更新,在當(dāng)次客戶端模塊開(kāi)機(jī)周期中首次訪問(wèn)目標(biāo)網(wǎng)頁(yè)時(shí),從服務(wù)端模塊獲取該數(shù)據(jù)單元的版本信息,用該版本信息與本地存儲(chǔ)的該數(shù)據(jù)單元的版本信息進(jìn)行對(duì)比,如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元;如果該數(shù)據(jù)單元的更新級(jí)別為經(jīng)常需要更新,在客戶端模塊每次請(qǐng)求訪問(wèn)該網(wǎng)頁(yè)時(shí),都將對(duì)從服務(wù)端獲取的版本信息與本地存儲(chǔ)的版本信息進(jìn)行比對(duì),如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元。優(yōu)選地,還包括客戶端模塊加載數(shù)據(jù)單元到從服務(wù)端請(qǐng)求獲取的網(wǎng)頁(yè)的主體框架內(nèi),并和無(wú)需緩存的數(shù)據(jù)單元內(nèi)容組成完整的網(wǎng)頁(yè)展示。優(yōu)選地,所述客戶端模塊根據(jù)所述網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息分析所述網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元進(jìn)一步為客戶端模塊根據(jù)網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息逐個(gè)分析網(wǎng)頁(yè)中所有數(shù)據(jù)單元屬性,判斷網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元。優(yōu)選地,還包括根據(jù)WEB網(wǎng)站服務(wù)提供商在發(fā)布或更新web資源時(shí)的指令,設(shè)置數(shù)據(jù)單元屬性。優(yōu)選地,客戶端模塊從服務(wù)端模塊網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息中,客戶端發(fā)送請(qǐng)求時(shí)采用Ajax頁(yè)面無(wú)刷新機(jī)制。優(yōu)選地,如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元后,更新數(shù)據(jù)單元的版本。本發(fā)明還公開(kāi)了一種TOB平臺(tái)數(shù)據(jù)緩存的系統(tǒng),由兩部分組成服務(wù)端模塊和客戶端模塊;所述服務(wù)端模塊包括網(wǎng)絡(luò)服務(wù)子模塊、后臺(tái)數(shù)據(jù)存儲(chǔ)子模塊、頁(yè)面資源設(shè)置子模塊、頁(yè)面數(shù)據(jù)輸出子模塊;所述網(wǎng)絡(luò)服務(wù)子模塊,用于為客戶端模塊提供網(wǎng)絡(luò)服務(wù);所述后臺(tái)數(shù)據(jù)存儲(chǔ)子模塊,與所述網(wǎng)絡(luò)服務(wù)子模塊相連,用于存儲(chǔ)從服務(wù)端模塊獲取的需要緩存的數(shù)據(jù)單元及數(shù)據(jù)單元相關(guān)屬性信息;所述頁(yè)面資源設(shè)置子模塊,與后臺(tái)數(shù)據(jù)存儲(chǔ)子單元相連,用于對(duì)于網(wǎng)頁(yè)中的數(shù)據(jù)單元屬性進(jìn)行設(shè)置,并用于根據(jù)所述屬性設(shè)置控制引導(dǎo)數(shù)據(jù)單元與客戶端模塊之間的交互;所述數(shù)據(jù)單元的屬性包括id、是否緩存開(kāi)關(guān)、更新級(jí)別、版本信息;頁(yè)面數(shù)據(jù)輸出子模塊,與所述頁(yè)面資源設(shè)置子模塊相連,用于根據(jù)客戶端模塊的連接請(qǐng)求以及頁(yè)面資源設(shè)置子模塊對(duì)網(wǎng)頁(yè)中的數(shù)據(jù)單元屬性設(shè)置情況,生成頁(yè)面的主框架以及不需要客戶端緩存的數(shù)據(jù)資源,并通過(guò)網(wǎng)絡(luò)將其返回至客戶端模塊;客戶端模塊包括數(shù)據(jù)加載子模塊、數(shù)據(jù)控制子模塊、數(shù)據(jù)存儲(chǔ)子模塊、數(shù)據(jù)展示子模塊等四個(gè)子模塊;所述數(shù)據(jù)加載子模塊,與數(shù)據(jù)控制子模塊相連,用于獲取服務(wù)端返回的網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、需要緩存的數(shù)據(jù)單元、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息等,并將其交由數(shù)據(jù)控制子模塊;數(shù)據(jù)存儲(chǔ)子模塊,用于對(duì)TOB系統(tǒng)的網(wǎng)頁(yè)需要緩存的數(shù)據(jù)單元進(jìn)行本地化存儲(chǔ),并存儲(chǔ)數(shù)據(jù)單元的版本信息;數(shù)據(jù)控制子模塊,用于為不同的網(wǎng)站開(kāi)辟不同的存儲(chǔ)空間,供數(shù)據(jù)控制子模塊進(jìn)行數(shù)據(jù)單元的存儲(chǔ)和讀??;數(shù)據(jù)控制子模塊,與數(shù)據(jù)加載子模塊、數(shù)據(jù)存儲(chǔ)子模塊、數(shù)據(jù)展示子模塊相連,主要用于根據(jù)數(shù)據(jù)加載子模塊獲取網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息,分析網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元;并用于判斷本地是否存在所述需要緩存數(shù)據(jù)單元和需要緩存數(shù)據(jù)單元的更新級(jí)別;并根據(jù)分析判斷結(jié)果控制數(shù)據(jù)加載子模塊對(duì)網(wǎng)頁(yè)數(shù)據(jù)的加載,控制數(shù)據(jù)存儲(chǔ)子模塊對(duì)需要緩存數(shù)據(jù)的存儲(chǔ),控制數(shù)據(jù)展示子模塊對(duì)網(wǎng)頁(yè)數(shù)據(jù)的展示;數(shù)據(jù)展示子單元,與數(shù)據(jù)控制子模塊快和數(shù)據(jù)加載子模塊相連,用于加載數(shù)據(jù)單元到從服務(wù)端請(qǐng)求獲取的網(wǎng)頁(yè)的主體框架內(nèi),并和無(wú)需緩存的數(shù)據(jù)單元內(nèi)容組成完整的網(wǎng)頁(yè)展示。本發(fā)明實(shí)現(xiàn)了對(duì)一部分不常更新的網(wǎng)站資源的可配置緩存,減少了web訪問(wèn),節(jié)約了訪問(wèn)資源和提高了訪問(wèn)時(shí)效性。圖1為本發(fā)明一種Web平臺(tái)數(shù)據(jù)緩存的方法流程圖。圖2為本發(fā)明一種Web平臺(tái)數(shù)據(jù)緩存系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施例方式本發(fā)明的一個(gè)實(shí)施例公開(kāi)了一種TOB平臺(tái)數(shù)據(jù)緩存的方法,如圖1所示。主要包括如下步驟步驟1、根據(jù)WEB網(wǎng)站服務(wù)提供商在發(fā)布或更新web資源時(shí)的指令,設(shè)置數(shù)據(jù)單元屬性。這里,數(shù)據(jù)單元屬性主要包括數(shù)據(jù)單元的是否可供客戶端模塊緩存、更新級(jí)別、版本等信息。當(dāng)數(shù)據(jù)單元被更新時(shí),其版本信息被更新。本步驟中,web資源為網(wǎng)頁(yè)中的各種數(shù)據(jù)單元,包括單體資源,如圖片、flash文檔、js文檔、CSS文檔、xml文檔等;也包括混合資源,如table(表格,HTML標(biāo)簽,用規(guī)范化的行和列為HTML文檔中的數(shù)據(jù)內(nèi)容提供結(jié)構(gòu)的元素)、div(層,HTML標(biāo)簽,用來(lái)為HTML文檔內(nèi)大塊(block-level)的內(nèi)容提供結(jié)構(gòu)和背景的元素)等,混合資源中一般至少包括兩種以上的單體資源。另外,服務(wù)端網(wǎng)頁(yè)中的各種數(shù)據(jù)資源存在于網(wǎng)頁(yè)的主體框架內(nèi),服務(wù)端網(wǎng)頁(yè)的主體框架如同樹(shù)干,網(wǎng)頁(yè)的每個(gè)數(shù)據(jù)單元如同樹(shù)葉一般依附在樹(shù)干上。每個(gè)數(shù)據(jù)單元均包含兩部分信息屬性和內(nèi)容。數(shù)據(jù)單元的屬性包括id、是否緩存開(kāi)關(guān)、更新級(jí)別、版本信息等,屬性由服務(wù)端頁(yè)面資源設(shè)置子模塊進(jìn)行設(shè)置,在客戶端控制子模塊中進(jìn)行讀取和分析。數(shù)據(jù)單元的內(nèi)容由其屬性決定是否在客戶端進(jìn)行緩存以及如何更新,數(shù)據(jù)單元的內(nèi)容將直接體現(xiàn)在用戶的瀏覽器界面中。在很多大型的TOB網(wǎng)站中,所有的網(wǎng)站資源按其更新頻率,基本可以劃分為以下幾種更新級(jí)別從不更新、偶爾更新、經(jīng)常更新、時(shí)時(shí)更新。越時(shí)時(shí)更新的信息,其緩存的必要性越小,時(shí)時(shí)更新類的資源一般不需要緩存,例如實(shí)時(shí)新聞、股票信息、論壇帖子等等,要求每次客戶端發(fā)送訪問(wèn)請(qǐng)求都直接連接服務(wù)端獲取網(wǎng)頁(yè)資源;而其他幾類WEB網(wǎng)站服務(wù)提供商可以根據(jù)實(shí)際情況對(duì)網(wǎng)頁(yè)的各個(gè)數(shù)據(jù)單元進(jìn)行設(shè)置,通過(guò)客戶端的緩存來(lái)優(yōu)化網(wǎng)頁(yè)的訪問(wèn)速度。數(shù)據(jù)單元的版本信息可以定義為一個(gè)特殊的字符串,該字符串由數(shù)字組成,也可以包含若干字母,具體格式由WEB網(wǎng)站服務(wù)提供商自己定義,例如v.2010.0012,表示該數(shù)據(jù)單元為2010年發(fā)布的第12次發(fā)布的版本。一般說(shuō)來(lái),數(shù)值越大表示該版本越新。步驟2客戶端模塊從服務(wù)端模塊網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息。本步驟中,客戶端模塊請(qǐng)求訪問(wèn)服務(wù)端模塊的網(wǎng)頁(yè)數(shù)據(jù),并接收加載服務(wù)端模塊響應(yīng)請(qǐng)求后生成網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息。步驟3客戶端模塊根據(jù)網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息分析網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元。本步驟中,客戶端后臺(tái)控制子模塊根據(jù)網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息逐個(gè)分析該網(wǎng)頁(yè)中所有的數(shù)據(jù)單元屬性,包括判斷網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元。步驟4:如果網(wǎng)頁(yè)中存在需要緩存數(shù)據(jù)單元,則判斷本地是否存在所述需要緩存數(shù)據(jù)單元。步驟5如果客戶端模塊本地不存在需要緩存的數(shù)據(jù)單元,從服務(wù)端模塊請(qǐng)求獲取該需要緩存的數(shù)據(jù)單元,并進(jìn)行本地存儲(chǔ),并生成該數(shù)據(jù)單元的版本信息。本步驟中,如果本地不存在需要緩存的數(shù)據(jù)單元,客戶端數(shù)據(jù)控制子模塊將通過(guò)加載子模塊發(fā)送請(qǐng)求,以連接服務(wù)端獲取該數(shù)據(jù)單元,并存儲(chǔ)到客戶端存儲(chǔ)子模塊中,同時(shí)生成該數(shù)據(jù)單元的版本信息。步驟6如果本地存在需要緩存的數(shù)據(jù)單元,則進(jìn)一步判斷該需要緩存的數(shù)據(jù)單元的屬性中的更新級(jí)別。根據(jù)更新級(jí)別,分三種情況,通過(guò)以下7、8、9步驟進(jìn)行執(zhí)行。步驟7如果該需要緩存的數(shù)據(jù)單元的更新級(jí)別為從不更新,每次訪問(wèn)網(wǎng)頁(yè)時(shí),客戶端模塊從本地讀取該數(shù)據(jù)單元進(jìn)行加載。本步驟中,每次訪問(wèn)該頁(yè)面時(shí),都不連接服務(wù)器獲取該資源,而只讀取客戶端本地?cái)?shù)據(jù)存儲(chǔ)子模塊的數(shù)據(jù)。本步驟中,比如網(wǎng)頁(yè)的BarmeH網(wǎng)頁(yè)的橫幅廣告或是大標(biāo)題)、Js文檔、Css文檔等等,此類資源在網(wǎng)站服務(wù)開(kāi)展后一般不會(huì)再更新。這種情況下,一旦該資源在客戶端數(shù)據(jù)存儲(chǔ)子模塊已經(jīng)保存,那么當(dāng)用戶訪問(wèn)頁(yè)面時(shí)即可不連接服務(wù)端獲取該資源,而只讀取客戶端本地存儲(chǔ)的數(shù)據(jù)即可達(dá)到目的。步驟8如果該數(shù)據(jù)單元的更新級(jí)別為偶爾需要更新,在當(dāng)次客戶端模塊開(kāi)機(jī)周期中首次訪問(wèn)目標(biāo)網(wǎng)頁(yè)時(shí),從服務(wù)端模塊獲取該數(shù)據(jù)單元的版本信息,用該版本信息與本地存儲(chǔ)的該數(shù)據(jù)單元的版本信息進(jìn)行對(duì)比,如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元。本步驟的具體操作為則客戶端數(shù)據(jù)控制子模塊將利用加載子模塊發(fā)送連接請(qǐng)求,通過(guò)網(wǎng)絡(luò)傳遞該數(shù)據(jù)單元的id至服務(wù)端,而服務(wù)端根據(jù)id參數(shù)生成該數(shù)據(jù)單元的內(nèi)容,并返回至客戶端??蛻舳思虞d子模塊獲取了服務(wù)端返回的數(shù)據(jù)單元內(nèi)容,通過(guò)客戶端控制子模塊,刪除該數(shù)據(jù)單元的歷史版本,并保存新版本的數(shù)據(jù)單元內(nèi)容到客戶端存儲(chǔ)子模塊中,以便其他時(shí)候讀取。本步驟中,比如一些在本TOB網(wǎng)站投放的廣告信息、某些公告類信息等等,此類資源更新頻率比較低,但是隔一段時(shí)間還是需要更新的。這種情況下,在本次開(kāi)機(jī)周期中首次訪問(wèn)本網(wǎng)頁(yè)時(shí)才比對(duì)網(wǎng)頁(yè)數(shù)據(jù)單元與客戶端本地存儲(chǔ)子模塊的資源版本信息,而其他時(shí)候打開(kāi)該網(wǎng)站都不進(jìn)行比對(duì)而直接調(diào)取本地存儲(chǔ)的資源。開(kāi)機(jī)周期是指客戶端個(gè)人電腦從開(kāi)啟機(jī)器到關(guān)閉機(jī)器的這段時(shí)間。步驟9如果該數(shù)據(jù)單元的更新級(jí)別為經(jīng)常需要更新,那么在客戶端模塊每次請(qǐng)求訪問(wèn)該網(wǎng)頁(yè)時(shí),都將對(duì)從服務(wù)端獲取的版本信息與本地存儲(chǔ)的版本信息進(jìn)行比對(duì),如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元。比如一些不要求實(shí)時(shí)更新的資訊、視頻信息等。這種情況下,要求每次訪問(wèn)該網(wǎng)頁(yè)都比對(duì)網(wǎng)頁(yè)的數(shù)據(jù)單元與客戶端本地存儲(chǔ)子模塊的資源版本信息。步驟10客戶端模塊加載數(shù)據(jù)單元到從服務(wù)端請(qǐng)求獲取的網(wǎng)頁(yè)的主體框架內(nèi),并和無(wú)需緩存的數(shù)據(jù)單元內(nèi)容組成完整的網(wǎng)頁(yè),一起展示。本步驟中,當(dāng)服務(wù)端模塊的數(shù)據(jù)單元的版本和客戶端模塊本地存儲(chǔ)子模塊中取出的數(shù)據(jù)單元版本一致時(shí),則客戶端控制子模塊將根據(jù)該數(shù)據(jù)單元的id和版本信息直接讀取本地存儲(chǔ)子模塊所存儲(chǔ)的數(shù)據(jù)單元的內(nèi)容進(jìn)行加載。當(dāng)服務(wù)端資源版本較之客戶端本地存儲(chǔ)子模塊的數(shù)據(jù)單元為新的時(shí),則客戶端加載從服務(wù)端新獲取的數(shù)據(jù)單元。較佳的,本實(shí)施例中瀏覽器展示了網(wǎng)頁(yè)的主體框架和無(wú)須緩存的數(shù)據(jù)單元,而那些須緩存的數(shù)據(jù)單元中有一部分可能需要后臺(tái)連接服務(wù)端進(jìn)行加載,此操作可能需要若干時(shí)間,因此這些網(wǎng)頁(yè)數(shù)據(jù)單元可以顯示諸如“正在加載數(shù)據(jù),請(qǐng)等待…”等使得人機(jī)交互更加友好。較佳的,本實(shí)施例中客戶端數(shù)據(jù)控制子模塊將通過(guò)加載子模塊發(fā)送請(qǐng)求時(shí)可以采用Ajax頁(yè)面無(wú)刷新機(jī)制的技術(shù)進(jìn)行與服務(wù)端模塊進(jìn)行交互,這樣既可以減輕對(duì)網(wǎng)絡(luò)和服務(wù)器的負(fù)擔(dān),提高處理的效率,同時(shí)也無(wú)需打斷用戶訪問(wèn)頁(yè)面數(shù)據(jù)的交互流程。較佳的,本實(shí)施例中,當(dāng)客戶端通過(guò)數(shù)據(jù)加載子模塊進(jìn)行數(shù)據(jù)單元的請(qǐng)求時(shí),頁(yè)面將會(huì)創(chuàng)建一個(gè)XmlHttpRequest對(duì)象,向服務(wù)器發(fā)送參數(shù),以及由該對(duì)象產(chǎn)生一個(gè)接收服務(wù)端傳遞過(guò)來(lái)的數(shù)據(jù)的XmlDoc對(duì)象,客戶端數(shù)據(jù)加載子模塊通過(guò)Dom來(lái)解析XmlDoc對(duì)象并將進(jìn)行進(jìn)一步處理。較佳的,本實(shí)施例中服務(wù)端生成數(shù)據(jù)單元時(shí)可以將該數(shù)據(jù)單元的文本內(nèi)容按UniCode格式進(jìn)行編碼(也可采用UTF-8等編碼格式),以便客戶端在解析過(guò)程中因?yàn)槟承┨厥獾淖址a(chǎn)生異常。通過(guò)本實(shí)施例的描述,本發(fā)明方案,避免了傳統(tǒng)的瀏覽器緩存技術(shù)對(duì)于同類型的網(wǎng)頁(yè)資源要么全部加載要么全部不加載的“一刀切”的缺陷,通過(guò)對(duì)不經(jīng)常更新的數(shù)據(jù)資源進(jìn)行緩存,實(shí)現(xiàn)服務(wù)端的WEB網(wǎng)站服務(wù)提供商能夠自主的控制其網(wǎng)頁(yè)資源是否在客戶端進(jìn)行緩存,以達(dá)到減少服務(wù)端和客戶端之間的交互,提高用戶的界面訪問(wèn)速度的目的。如圖2所示,本發(fā)明第二個(gè)實(shí)施例提供了一種Web平臺(tái)數(shù)據(jù)緩存的系統(tǒng)。系統(tǒng)主要由兩部分組成服務(wù)端模塊和客戶端模塊。其中,服務(wù)端模塊包括網(wǎng)絡(luò)服務(wù)子模塊、后臺(tái)數(shù)據(jù)存儲(chǔ)子模塊、頁(yè)面資源設(shè)置子模塊、頁(yè)面數(shù)據(jù)輸出子模塊等四個(gè)子模塊。網(wǎng)絡(luò)服務(wù)子模塊,為在網(wǎng)絡(luò)環(huán)境下運(yùn)行的、面向服務(wù)的、基于分布式程序的軟件模塊,采用HTTP和XML等互聯(lián)網(wǎng)通用標(biāo)準(zhǔn),使得人們可以在不同的地方通過(guò)不同的終端設(shè)備訪問(wèn)TOB上的數(shù)據(jù),用于為客戶端模塊提供網(wǎng)絡(luò)服務(wù)。后臺(tái)數(shù)據(jù)存儲(chǔ)子模塊,與網(wǎng)絡(luò)服務(wù)子模塊相連,為按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)??梢詾榫W(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù),如SqlSerVer、mySql數(shù)據(jù)庫(kù)等。用于存儲(chǔ)從服務(wù)端模塊獲取的需要緩存的數(shù)據(jù)單元及數(shù)據(jù)單元相關(guān)屬性信息。頁(yè)面資源設(shè)置子模塊,與后臺(tái)數(shù)據(jù)存儲(chǔ)子單元相連,用于TOB網(wǎng)站服務(wù)提供商在發(fā)布web資源時(shí)對(duì)于網(wǎng)頁(yè)中的數(shù)據(jù)單元屬性進(jìn)行設(shè)置,數(shù)據(jù)單元的屬性包括id、是否緩存開(kāi)關(guān)、更新級(jí)別、版本信息等。并用于控制引導(dǎo)該數(shù)據(jù)單元與客戶端模塊之間的交互。網(wǎng)頁(yè)中的數(shù)據(jù)單元可為網(wǎng)頁(yè)的單體資源,如圖片、flash文檔、js文檔、ess文檔、xml文檔等等;也可以為混合資源,如數(shù)據(jù)表格(table)、層(div)等,混合資源中一般至少包括兩種以上的單體資源。頁(yè)面數(shù)據(jù)輸出子模塊,與頁(yè)面資源設(shè)置子模塊相連,根據(jù)客戶端模塊的連接請(qǐng)求以及頁(yè)面資源設(shè)置子模塊對(duì)網(wǎng)頁(yè)中的數(shù)據(jù)單元屬性設(shè)置情況,來(lái)生成頁(yè)面的數(shù)據(jù)。頁(yè)面資源被劃分為很多單元,而且每個(gè)數(shù)據(jù)單元具有獨(dú)立的id、是否緩存開(kāi)關(guān)、更新級(jí)別以及版本信息等屬性。頁(yè)面數(shù)據(jù)輸出子模塊最終生成頁(yè)面的主框架以及所有不需要客戶端緩存的數(shù)據(jù)資源,并通過(guò)網(wǎng)絡(luò)將其返回至客戶端模塊??蛻舳四K包括數(shù)據(jù)加載子模塊、數(shù)據(jù)控制子模塊、數(shù)據(jù)存儲(chǔ)子模塊、數(shù)據(jù)展示子模塊等四個(gè)子模塊。其中數(shù)據(jù)加載子模塊,與數(shù)據(jù)控制子模塊相連,主要用于發(fā)送客戶端模塊請(qǐng)求,連接服務(wù)端模塊、獲取服務(wù)端返回的網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、需要緩存的數(shù)據(jù)單元、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息等,并將其交由數(shù)據(jù)控制子模塊進(jìn)行分析。數(shù)據(jù)存儲(chǔ)子模塊,用于對(duì)WEB系統(tǒng)的網(wǎng)頁(yè)需要緩存的數(shù)據(jù)單元進(jìn)行本地化存儲(chǔ),并存儲(chǔ)數(shù)據(jù)單元的版本信息,以提高網(wǎng)頁(yè)的訪問(wèn)效率。數(shù)據(jù)控制子模塊為不同的網(wǎng)站開(kāi)辟不同的存儲(chǔ)空間,便于數(shù)據(jù)控制子模塊進(jìn)行數(shù)據(jù)單元的存儲(chǔ)和讀取。對(duì)于混合資源的數(shù)據(jù)單元將開(kāi)辟獨(dú)立的空間用于存儲(chǔ)。如對(duì)于一個(gè)包含圖片以及鏈接的table(數(shù)據(jù)表格)。數(shù)據(jù)控制子模塊,與數(shù)據(jù)加載子模塊、數(shù)據(jù)存儲(chǔ)子模塊、數(shù)據(jù)展示子模塊相連,主要用于根據(jù)數(shù)據(jù)加載子模塊獲取網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息,分析網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元;并用于判斷本地是否存在所述需要緩存數(shù)據(jù)單元和需要緩存數(shù)據(jù)單元的更新級(jí)別;并根據(jù)分析判斷結(jié)果控制數(shù)據(jù)加載子模塊對(duì)網(wǎng)頁(yè)數(shù)據(jù)的加載,控制數(shù)據(jù)存儲(chǔ)子模塊對(duì)需要緩存數(shù)據(jù)的存儲(chǔ),控制數(shù)據(jù)展示子模塊對(duì)網(wǎng)頁(yè)數(shù)據(jù)的展示。數(shù)據(jù)控制子模塊與其他子模塊的主要交互為一,控制數(shù)據(jù)加載子模塊連接服務(wù)端模塊發(fā)送網(wǎng)頁(yè)訪問(wèn)的請(qǐng)求;二,分析服務(wù)端返回的網(wǎng)頁(yè)數(shù)據(jù)文件;三、根據(jù)需要緩存的數(shù)據(jù)單元的id在客戶端數(shù)據(jù)存儲(chǔ)子模塊中創(chuàng)建獨(dú)立的存儲(chǔ)空間;四、比對(duì)數(shù)據(jù)單元的版本信息;五、將數(shù)據(jù)單元存儲(chǔ)至數(shù)據(jù)存儲(chǔ)子模塊中;六、將數(shù)據(jù)單元從數(shù)據(jù)存儲(chǔ)子模塊中讀取出來(lái);七、控制網(wǎng)頁(yè)數(shù)據(jù)或數(shù)據(jù)單元在瀏覽器中進(jìn)行顯示。數(shù)據(jù)展示子單元,與數(shù)據(jù)控制子模塊快和數(shù)據(jù)加載子模塊相連,用于加載數(shù)據(jù)單元到從服務(wù)端請(qǐng)求獲取的網(wǎng)頁(yè)的主體框架內(nèi),并和無(wú)需緩存的數(shù)據(jù)單元內(nèi)容組成完整的網(wǎng)9頁(yè),一起展示。用戶最終瀏覽的結(jié)果應(yīng)為完整的頁(yè)面,包括服務(wù)端返回的無(wú)需緩存的數(shù)據(jù)單元,以及客戶端數(shù)據(jù)存儲(chǔ)子模塊中讀取的本地存儲(chǔ)的數(shù)據(jù)單元。另外,客戶端模塊和服務(wù)端模塊可通過(guò)互聯(lián)網(wǎng)通道相連,客戶端模塊的各個(gè)功能可通過(guò)一般計(jì)算機(jī)終端的IE等多種瀏覽器軟件運(yùn)行實(shí)現(xiàn)。服務(wù)端模塊一般運(yùn)行于提供各種網(wǎng)絡(luò)服務(wù)的服務(wù)器,其各模塊的功能一般在服務(wù)器上運(yùn)行實(shí)現(xiàn)。在上述描述中,數(shù)據(jù)是指用戶所要瀏覽的網(wǎng)頁(yè)內(nèi)容。通過(guò)本實(shí)施例的描述,本發(fā)明方案,避免了傳統(tǒng)的瀏覽器緩存技術(shù)對(duì)于同類型的網(wǎng)頁(yè)資源要么全部加載要么全部不加載的“一刀切”的缺陷。在現(xiàn)有技術(shù)框架的基礎(chǔ)上增加了服務(wù)端的頁(yè)面資源設(shè)置子模塊和客戶端的數(shù)據(jù)控制子模塊,實(shí)現(xiàn)服務(wù)端的WEB網(wǎng)站服務(wù)提供商能夠自主的控制其網(wǎng)頁(yè)資源是否在客戶端進(jìn)行緩存,以達(dá)到減少服務(wù)端和客戶端之間的交互,提高用戶的界面訪問(wèn)速度的目的。一般目前的瀏覽器緩存技術(shù),由于瀏覽器存在于客戶端的局限性,無(wú)法得知用戶想要訪問(wèn)的網(wǎng)頁(yè)哪些是需要實(shí)時(shí)更新,哪些只需保存在客戶端本地緩存區(qū)中即可的,并且在緩存數(shù)據(jù)的時(shí)候,只能根據(jù)網(wǎng)頁(yè)資源的類型“一刀切”,即某類型的網(wǎng)頁(yè)資源要么全部緩存,要么全部不緩存,不夠靈活。而通過(guò)本方案的實(shí)施,服務(wù)端WEB網(wǎng)站服務(wù)提供商可以介入其網(wǎng)站資源在各個(gè)客戶端中的合理保存行為中,畢竟只有WEB網(wǎng)站服務(wù)提供商才能準(zhǔn)確的指明各個(gè)網(wǎng)頁(yè)資源是否緩存以及更新級(jí)別。因此本方案不僅能大大減少了客戶端與服務(wù)端模塊的交互的數(shù)據(jù)流量,減輕了數(shù)據(jù)在傳輸過(guò)程給網(wǎng)絡(luò)和服務(wù)器帶來(lái)的負(fù)擔(dān),并且不影響用戶在客戶端執(zhí)行瀏覽和處理數(shù)據(jù),縮短用戶等待數(shù)據(jù)連接服務(wù)器加載完整網(wǎng)頁(yè)的時(shí)間,提高了用戶處理的效率。上述實(shí)施例僅用來(lái)進(jìn)一步說(shuō)明本發(fā)明的一種TOB平臺(tái)數(shù)據(jù)緩存的方法及其裝置,但本發(fā)明并不局限于實(shí)施例,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均落入本發(fā)明技術(shù)方案的保護(hù)范圍內(nèi)。權(quán)利要求1.一種WEB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,包括客戶端模塊從服務(wù)端模塊網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息;所述數(shù)據(jù)單元屬性主要包括數(shù)據(jù)單元是否可供客戶端模塊緩存、更新級(jí)別、版本等信息;客戶端模塊根據(jù)所述網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息分析所述網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元;如果網(wǎng)頁(yè)中存在需要緩存數(shù)據(jù)單元,判斷客戶端模塊本地是否存在所述需要緩存的數(shù)據(jù)單元;如果客戶端模塊本地不存在需要緩存的數(shù)據(jù)單元,從服務(wù)端模塊請(qǐng)求獲取所述需要緩存的數(shù)據(jù)單元,進(jìn)行本地存儲(chǔ),并生成所述數(shù)據(jù)單元的版本信息;如果本地存在所述需要緩存的數(shù)據(jù)單元,判斷該需要緩存的數(shù)據(jù)單元的屬性信息中的更新級(jí)別;根據(jù)所述更新級(jí)別對(duì)所述需要緩存的數(shù)據(jù)單元進(jìn)行獲取。2.根據(jù)權(quán)利要求1所述的一種WEB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,包括所述判斷該需要緩存的數(shù)據(jù)單元的屬性信息中的更新級(jí)別中,所述更新級(jí)別包括從不更新、偶爾需要更新、經(jīng)常需要更新;所述根據(jù)所述更新級(jí)別對(duì)所述需要緩存的數(shù)據(jù)單元進(jìn)行獲取進(jìn)一步為如果所述需要緩存的數(shù)據(jù)單元的更新級(jí)別為從不更新,每次訪問(wèn)網(wǎng)頁(yè)時(shí),客戶端模塊從本地讀取該數(shù)據(jù)單元進(jìn)行加載;如果該數(shù)據(jù)單元的更新級(jí)別為偶爾需要更新,在當(dāng)次客戶端模塊開(kāi)機(jī)周期中首次訪問(wèn)目標(biāo)網(wǎng)頁(yè)時(shí),從服務(wù)端模塊獲取該數(shù)據(jù)單元的版本信息,用該版本信息與本地存儲(chǔ)的該數(shù)據(jù)單元的版本信息進(jìn)行對(duì)比,如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元;如果該數(shù)據(jù)單元的更新級(jí)別為經(jīng)常需要更新,在客戶端模塊每次請(qǐng)求訪問(wèn)該網(wǎng)頁(yè)時(shí),都將對(duì)從服務(wù)端獲取的版本信息與本地存儲(chǔ)的版本信息進(jìn)行比對(duì),如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元。3.根據(jù)權(quán)利要求1所述的一種WEB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,還包括客戶端模塊加載數(shù)據(jù)單元到從服務(wù)端請(qǐng)求獲取的網(wǎng)頁(yè)的主體框架內(nèi),并和無(wú)需緩存的數(shù)據(jù)單元內(nèi)容組成完整的網(wǎng)頁(yè)展示。4.根據(jù)權(quán)利要求1所述的一種WEB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,所述客戶端模塊根據(jù)所述網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息分析所述網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元進(jìn)一步為客戶端模塊根據(jù)網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息逐個(gè)分析網(wǎng)頁(yè)中所有數(shù)據(jù)單元屬性,判斷網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元。5.根據(jù)權(quán)利要求1所述的一種WEB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,還包括根據(jù)WEB網(wǎng)站服務(wù)提供商在發(fā)布或更新web資源時(shí)的指令,設(shè)置數(shù)據(jù)單元屬性。6.根據(jù)權(quán)利要求1所述的一種WEB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,客戶端模塊從服務(wù)端模塊網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息中,客戶端發(fā)送請(qǐng)求時(shí)采用Ajax頁(yè)面無(wú)刷新機(jī)制。7.根據(jù)權(quán)利要求2所述的一種TOB平臺(tái)數(shù)據(jù)緩存的方法,其特征在于,如果版本信息不同,則從服務(wù)端請(qǐng)求該數(shù)據(jù)單元內(nèi)容,并替換本地已存儲(chǔ)的數(shù)據(jù)單元后,更新數(shù)據(jù)單元的版本。8.—種WEB平臺(tái)數(shù)據(jù)緩存的系統(tǒng),其特征在于,由兩部分組成服務(wù)端模塊和客戶端模塊;所述服務(wù)端模塊包括網(wǎng)絡(luò)服務(wù)子模塊、后臺(tái)數(shù)據(jù)存儲(chǔ)子模塊、頁(yè)面資源設(shè)置子模塊、頁(yè)面數(shù)據(jù)輸出子模塊;所述網(wǎng)絡(luò)服務(wù)子模塊,用于為客戶端模塊提供網(wǎng)絡(luò)服務(wù);所述后臺(tái)數(shù)據(jù)存儲(chǔ)子模塊,與所述網(wǎng)絡(luò)服務(wù)子模塊相連,用于存儲(chǔ)從服務(wù)端模塊獲取的需要緩存的數(shù)據(jù)單元及數(shù)據(jù)單元相關(guān)屬性信息;所述頁(yè)面資源設(shè)置子模塊,與后臺(tái)數(shù)據(jù)存儲(chǔ)子單元相連,用于對(duì)于網(wǎng)頁(yè)中的數(shù)據(jù)單元屬性進(jìn)行設(shè)置,并用于根據(jù)所述屬性設(shè)置控制引導(dǎo)數(shù)據(jù)單元與客戶端模塊之間的交互;所述數(shù)據(jù)單元的屬性包括id、是否緩存開(kāi)關(guān)、更新級(jí)別、版本信息;頁(yè)面數(shù)據(jù)輸出子模塊,與所述頁(yè)面資源設(shè)置子模塊相連,用于根據(jù)客戶端模塊的連接請(qǐng)求以及頁(yè)面資源設(shè)置子模塊對(duì)網(wǎng)頁(yè)中的數(shù)據(jù)單元屬性設(shè)置情況,生成頁(yè)面的主框架以及不需要客戶端緩存的數(shù)據(jù)資源,并通過(guò)網(wǎng)絡(luò)將其返回至客戶端模塊;客戶端模塊包括數(shù)據(jù)加載子模塊、數(shù)據(jù)控制子模塊、數(shù)據(jù)存儲(chǔ)子模塊、數(shù)據(jù)展示子模塊等四個(gè)子模塊;所述數(shù)據(jù)加載子模塊,與數(shù)據(jù)控制子模塊相連,用于獲取服務(wù)端返回的網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、需要緩存的數(shù)據(jù)單元、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息等,并將其交由數(shù)據(jù)控制子模塊;數(shù)據(jù)存儲(chǔ)子模塊,用于對(duì)WEB系統(tǒng)的網(wǎng)頁(yè)需要緩存的數(shù)據(jù)單元進(jìn)行本地化存儲(chǔ),并存儲(chǔ)數(shù)據(jù)單元的版本信息;數(shù)據(jù)控制子模塊,用于為不同的網(wǎng)站開(kāi)辟不同的存儲(chǔ)空間,供數(shù)據(jù)控制子模塊進(jìn)行數(shù)據(jù)單元的存儲(chǔ)和讀取;數(shù)據(jù)控制子模塊,與數(shù)據(jù)加載子模塊、數(shù)據(jù)存儲(chǔ)子模塊、數(shù)據(jù)展示子模塊相連,主要用于根據(jù)數(shù)據(jù)加載子模塊獲取網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息,分析網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元;并用于判斷本地是否存在所述需要緩存數(shù)據(jù)單元和需要緩存數(shù)據(jù)單元的更新級(jí)別;并根據(jù)分析判斷結(jié)果控制數(shù)據(jù)加載子模塊對(duì)網(wǎng)頁(yè)數(shù)據(jù)的加載,控制數(shù)據(jù)存儲(chǔ)子模塊對(duì)需要緩存數(shù)據(jù)的存儲(chǔ),控制數(shù)據(jù)展示子模塊對(duì)網(wǎng)頁(yè)數(shù)據(jù)的展示;數(shù)據(jù)展示子單元,與數(shù)據(jù)控制子模塊快和數(shù)據(jù)加載子模塊相連,用于加載數(shù)據(jù)單元到從服務(wù)端請(qǐng)求獲取的網(wǎng)頁(yè)的主體框架內(nèi),并和無(wú)需緩存的數(shù)據(jù)單元內(nèi)容組成完整的網(wǎng)頁(yè)展示。全文摘要本發(fā)明公開(kāi)了一種WEB平臺(tái)數(shù)據(jù)緩存的方法,包括從服務(wù)端模塊網(wǎng)頁(yè)的主體框架、無(wú)需緩存的數(shù)據(jù)單元內(nèi)容、網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息;根據(jù)所述網(wǎng)頁(yè)各數(shù)據(jù)單元屬性信息分析所述網(wǎng)頁(yè)中是否有需要緩存的數(shù)據(jù)單元;如果網(wǎng)頁(yè)中存在需要緩存數(shù)據(jù)單元,判斷本地是否存在所述需要緩存的數(shù)據(jù)單元;如果客戶端模塊本地不存在需要緩存的數(shù)據(jù)單元,從服務(wù)端模塊請(qǐng)求獲取所述需要緩存的數(shù)據(jù)單元,進(jìn)行本地存儲(chǔ),并生成所述數(shù)據(jù)單元的版本信息;如果本地存在所述需要緩存的數(shù)據(jù)單元,判斷該需要緩存的數(shù)據(jù)單元的屬性信息中的更新級(jí)別;根據(jù)所述更新級(jí)別對(duì)所述需要緩存的數(shù)據(jù)單元進(jìn)行獲取。文檔編號(hào)H04L29/06GK101997927SQ20101055676公開(kāi)日2011年3月30日申請(qǐng)日期2010年11月18日優(yōu)先權(quán)日2010年11月18日發(fā)明者吳鴻偉,章正道,郭建輝申請(qǐng)人:廈門(mén)市美亞柏科信息股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1