專(zhuān)利名稱(chēng):Silverlight客戶(hù)端可控緩存方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及計(jì)算機(jī)應(yīng)用程序開(kāi)發(fā)領(lǐng)域,更具體地,涉及一種Silverlight 客戶(hù)端可控緩存方法和系統(tǒng)。
背景技術(shù):
Silverlight (銀光)為微軟推出的一種面向BS (browse/server,瀏覽器/服務(wù) 器)的RIA (Rich Internet applications,豐富互聯(lián)網(wǎng)應(yīng)用程序)開(kāi)發(fā)技術(shù)。Silverlight 提供了豐富的類(lèi)庫(kù)以便開(kāi)發(fā)人員開(kāi)發(fā)出復(fù)雜、豐富、高性能的BS應(yīng)用程序,但在本地緩存 方面做的有些不盡如人意。Silverlight緩存是由瀏覽器緩存機(jī)制來(lái)支持的,Silverlgiht客戶(hù)端請(qǐng)求的文 件都會(huì)緩存在瀏覽器緩存區(qū)中,而瀏覽器緩存是用戶(hù)不可控制的。瀏覽器緩存區(qū)大小有一 個(gè)固定的限額,當(dāng)瀏覽器下載的文件超過(guò)緩存區(qū)限額時(shí),瀏覽器會(huì)在沒(méi)有任何提示的情況 下自動(dòng)清理緩存區(qū)文件,瀏覽器在清理緩存文件時(shí)不會(huì)因?yàn)槟承┪募诜?wù)器上沒(méi)有新版 本而保留,它只是簡(jiǎn)單地按照最后一次訪(fǎng)問(wèn)時(shí)間順序地刪除。用戶(hù)無(wú)法阻止瀏覽器刪除那 些并不需要更新的緩存文件。這意味著Silverlight客戶(hù)端下載的緩存文件隨時(shí)有可能被 瀏覽器清理掉,下次訪(fǎng)問(wèn)時(shí)客戶(hù)端不得不重新下載所需文件,這將給客戶(hù)端帶來(lái)重復(fù)的下 載負(fù)擔(dān)。Silverlight應(yīng)用程序的特點(diǎn)是客戶(hù)端文件比較多,比較大,但修改并不頻繁。文 件越多越大,瀏覽器緩存區(qū)不夠的可能性就越高,瀏覽器進(jìn)行緩存區(qū)清理的頻率就越頻繁。 如果沒(méi)有一種機(jī)制來(lái)保證緩存的可控性,客戶(hù)端將不得不頻繁地下載之前已經(jīng)下載至緩存 區(qū)中卻被瀏覽器自動(dòng)清理的文件。用戶(hù)在每次啟動(dòng)程序時(shí),將不得不花很長(zhǎng)的時(shí)間來(lái)等待 文件下載。這必將給用戶(hù)帶來(lái)較差的體驗(yàn)。
發(fā)明內(nèi)容
鑒于上述情況,本發(fā)明提供了一種Silverlight客戶(hù)端可控緩存方法和系統(tǒng),以 新的可控緩存機(jī)制來(lái)替換瀏覽器的不可控緩存。根據(jù)本發(fā)明的一個(gè)方面,Silverlight客戶(hù)端可控緩存方法包括以下步驟步驟 S102,在Silverlight客戶(hù)端,使用一獨(dú)立存儲(chǔ)區(qū)為信任的程序創(chuàng)建和維護(hù)Silverlight 客戶(hù)端的虛擬文件系統(tǒng);步驟S104,在Silverlight服務(wù)器上和Silverlight客戶(hù)端的獨(dú) 立存儲(chǔ)區(qū)上分別部署版本控制文件和本地版本控制文件,用于分別記錄Silverlight服務(wù) 器和本地的每個(gè)文件的版本號(hào);步驟S106,當(dāng)開(kāi)始啟動(dòng)一程序時(shí),Silverlight客戶(hù)端從 Silverlight服務(wù)器下載版本控制文件并生成副本;以及步驟S108,當(dāng)Silverlight客戶(hù)端 請(qǐng)求一文件時(shí),根據(jù)版本控制文件與本地版本控制文件中的記錄來(lái)進(jìn)行文件的版本控制, 從而實(shí)現(xiàn)對(duì)緩存文件的控制。其中,虛擬文件系統(tǒng)為根目錄中的一個(gè)文件、一個(gè)目錄或者文件樹(shù)。版本控制文件和本地版本控制文件結(jié)構(gòu)相同,其中,版本控制文件記錄在Silverlight服務(wù)器上的每個(gè)文件的版本號(hào),以及本地版本控制文件記錄在Silverlight 客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)中的每個(gè)文件的版本號(hào)。在步驟S108中,當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),包括=Silverlight客戶(hù) 端從本地版本控制中查找有沒(méi)有文件的對(duì)應(yīng)文件記錄;如果存在文件的對(duì)應(yīng)文件記錄, Silverlight客戶(hù)端用本地版本控制文件中記錄的版本號(hào)與副本中同一文件的版本號(hào)進(jìn) 行比對(duì);以及如果本地版本控制文件中記錄的版本號(hào)與副本中同一文件的版本號(hào)相同,則 Silverlight客戶(hù)端直接從獨(dú)立存儲(chǔ)區(qū)讀取文件。此外,如果本地版本控制文件中記錄的版本號(hào)與副本中同一文件的版本號(hào)不同, 則Silverlight客戶(hù)端從Silverlight服務(wù)器上下載文件,在下載完成后用新下載的文件 覆蓋在獨(dú)立存儲(chǔ)區(qū)中的舊文件,并更新文件在本地版本控制文件中記錄的版本號(hào)。另外,如果不存在文件的對(duì)應(yīng)文件記錄,則Silverlight客戶(hù)端從Silverlight服 務(wù)器上下載文件,在下載完成后將文件添加到獨(dú)立存儲(chǔ)區(qū)中,并在本地版本控制文件中添 加對(duì)應(yīng)的文件記錄。根據(jù)本發(fā)明的另一個(gè)方面,Silverlight客戶(hù)端可控緩存系統(tǒng)包括獨(dú)立存儲(chǔ) 區(qū)建立單元,用于在Silverlight客戶(hù)端,使用一獨(dú)立存儲(chǔ)區(qū)為信任的程序創(chuàng)建和維護(hù) Silverlight客戶(hù)端的虛擬文件系統(tǒng);版本控制文件部署單元,用于在Silverlight服務(wù)器 上和Silverlight客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)上分別部署版本控制文件和本地版本控制文件,以 分別記錄Silverlight服務(wù)器和本地的每個(gè)文件的版本號(hào);副本生成單元,用于當(dāng)開(kāi)始啟 動(dòng)一程序時(shí),從Silverlight服務(wù)器下載版本控制文件并生成副本;以及版本控制單元,用 于當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),根據(jù)版本控制文件與本地版本控制文件中的記錄 來(lái)進(jìn)行文件的版本控制,從而實(shí)現(xiàn)對(duì)緩存文件的控制。其中,虛擬文件系統(tǒng)為根目錄中的一個(gè)文件、一個(gè)目錄或者文件樹(shù),并且版本控制 文件和本地版本控制文件結(jié)構(gòu)相同,其中,版本控制文件記錄在Silverlight服務(wù)器上的 每個(gè)文件的版本號(hào),以及本地版本控制文件記錄在Silverlight客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)中的 每個(gè)文件的版本號(hào)。在版本控制單元中,當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),從本地版本控制中查 找有沒(méi)有文件的對(duì)應(yīng)文件記錄;如果存在文件的對(duì)應(yīng)文件記錄,用本地版本控制文件中記 錄的版本號(hào)與副本中同一文件的版本號(hào)進(jìn)行比對(duì);以及如果本地版本控制文件中記錄的版 本號(hào)與副本中同一文件的版本號(hào)相同,則直接從獨(dú)立存儲(chǔ)區(qū)讀取文件。在版本控制單元中,如果本地版本控制文件中記錄的版本號(hào)與副本中同一文件的 版本號(hào)不同,則所從Silverlight服務(wù)器上下載文件,在下載完成后用新下載的文件覆蓋 在獨(dú)立存儲(chǔ)區(qū)中的舊文件,并更新文件在本地版本控制文件中記錄的版本號(hào)。此外,在版本控制單元中,如果不存在文件的對(duì)應(yīng)文件記錄,則從Silverlight服 務(wù)器上下載文件,在下載完成后將文件添加到獨(dú)立存儲(chǔ)區(qū)中,并在本地版本控制文件中添 加對(duì)應(yīng)的文件記錄。因此,本發(fā)明由于使用了獨(dú)立存儲(chǔ)區(qū),使得緩存的文件不會(huì)被系統(tǒng)隨意刪除,從而 只要服務(wù)器上沒(méi)有新版本,客戶(hù)端便可以一直使用緩存文件。此外,通過(guò)版本控制機(jī)制,可 以高效實(shí)現(xiàn)服務(wù)器與客戶(hù)端文件版本的同步,既不會(huì)出重復(fù)下載問(wèn)題,也不會(huì)產(chǎn)生客戶(hù)端 與服務(wù)器端版本不同步的問(wèn)題。
圖1是根據(jù)本發(fā)明的Silverlight客戶(hù)端可控緩存方法的流程圖;圖2是根據(jù)本發(fā)明的Silverlight客戶(hù)端可控緩存系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明實(shí)施例的可控緩存過(guò)程的流程圖。
具體實(shí)施例方式
以下將參考附圖詳細(xì)描述本發(fā)明的實(shí)施例。應(yīng)了解,要實(shí)現(xiàn)緩存,就需要在客戶(hù)端有一塊區(qū)域來(lái)保存文件。由于安全問(wèn)題, Silverlight不允許在本地進(jìn)行文件操作,只允許通過(guò)獨(dú)立存儲(chǔ)區(qū)為信任的程序創(chuàng)建和維 護(hù)客戶(hù)端虛擬文件系統(tǒng)。在Silverlight中,所有I/O操作都被限制為獨(dú)立存儲(chǔ),不使用操 作系統(tǒng)的文件系統(tǒng)。通過(guò)使用獨(dú)立存儲(chǔ),數(shù)據(jù)將始終按用戶(hù)在虛擬文件系統(tǒng)中隔離,虛擬文 件系統(tǒng)可以是根目錄中的一個(gè)文件,也可以是一個(gè)目錄和文件樹(shù)。獨(dú)立存儲(chǔ)區(qū)是可控的,除非用戶(hù)主動(dòng)刪除,否則里邊的文件不會(huì)自動(dòng)清理。我們可 以將客戶(hù)端需要的文件存儲(chǔ)在獨(dú)立存儲(chǔ)區(qū)中,在需要的時(shí)候從中取出。然而,僅僅使用獨(dú)立儲(chǔ)存區(qū)并不能建立一個(gè)完整的緩存機(jī)制。因?yàn)榉?wù)器上的文 件版本有可能更新,如果我們只是簡(jiǎn)單地從獨(dú)立儲(chǔ)存區(qū)中取文件的話(huà)就有可能得不到最新 版本的文件。我們需要提供一個(gè)版本控制機(jī)制才能解決這個(gè)問(wèn)題。圖1是根據(jù)本發(fā)明的Silverlight客戶(hù)端可控緩存方法的流程圖。如圖1所示, Silverlight客戶(hù)端可控緩存方法包括以下步驟步驟S102,在Silverlight客戶(hù)端,使用一獨(dú)立存儲(chǔ)區(qū)為信任的程序創(chuàng)建和維護(hù) Silverlight客戶(hù)端的虛擬文件系統(tǒng);步驟S104,在Silverlight服務(wù)器上和Silverlight客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)上分別 部署版本控制文件和本地版本控制文件,用于分別記錄Silverlight服務(wù)器和本地的每個(gè) 文件的版本號(hào);步驟S106,當(dāng)開(kāi)始啟動(dòng)一程序時(shí),Silverlight客戶(hù)端從Silverlight服務(wù)器下載 版本控制文件并生成副本;以及步驟S108,當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),根據(jù)版本控制文件與本地版本 控制文件中的記錄來(lái)進(jìn)行文件的版本控制。其中,虛擬文件系統(tǒng)為根目錄中的一個(gè)文件、一個(gè)目錄或者文件樹(shù)。版本控制文件 和本地版本控制文件結(jié)構(gòu)相同,其中,版本控制文件記錄在Silverlight服務(wù)器上的每個(gè) 文件的版本號(hào),以及本地版本控制文件記錄在Silverlight客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)中的每個(gè) 文件的版本號(hào)。在步驟S108中,當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),Silverlight客戶(hù)端從本地版本控制中查找有沒(méi)有文件的對(duì)應(yīng)文件記錄;如果存在文件的對(duì)應(yīng)文件記錄,Silverlight客戶(hù)端用本地版本控制文件中記錄 的版本號(hào)與副本中同一文件的版本號(hào)進(jìn)行比對(duì);以及如果本地版本控制文件中記錄的版本號(hào)與副本中同一文件的版本號(hào)相同,則 Silverlight客戶(hù)端直接從獨(dú)立存儲(chǔ)區(qū)讀取文件。
而如果本地版本控制文件中記錄的版本號(hào)與副本中同一文件的版本號(hào)不同,則 Silverlight客戶(hù)端從Silverlight服務(wù)器上下載文件,在下載完成后用新下載的文件覆 蓋在獨(dú)立存儲(chǔ)區(qū)中的舊文件,并更新文件在本地版本控制文件中記錄的版本號(hào)。另外,如果不存在文件的對(duì)應(yīng)文件記錄,則Silverlight客戶(hù)端從Silverlight服 務(wù)器上下載文件,在下載完成后將文件添加到獨(dú)立存儲(chǔ)區(qū)中,并在本地版本控制文件中添 加對(duì)應(yīng)的文件記錄。圖2是根據(jù)本發(fā)明的Silverlight客戶(hù)端可控緩存系統(tǒng)200的框圖。如圖2所示, 該系統(tǒng)包括獨(dú)立存儲(chǔ)區(qū)建立單元202,用于在Silverlight客戶(hù)端,使用一獨(dú)立存儲(chǔ)區(qū)為 信任的程序創(chuàng)建和維護(hù)Silverlight客戶(hù)端的虛擬文件系統(tǒng);版本控制文件部署單元204, 用于在Silverlight服務(wù)器上和Silverlight客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)上分別部署版本控制文 件和本地版本控制文件,以分別記錄Silverlight服務(wù)器和本地的每個(gè)文件的版本號(hào);副 本生成單元206,用于當(dāng)開(kāi)始啟動(dòng)一程序時(shí),從Silverlight服務(wù)器下載版本控制文件并生 成副本;以及版本控制單元208,用于當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),根據(jù)版本控制 文件與本地版本控制文件中的記錄來(lái)進(jìn)行文件的版本控制,從而實(shí)現(xiàn)對(duì)緩存文件的控制。其中,虛擬文件系統(tǒng)為根目錄中的一個(gè)文件、一個(gè)目錄或者文件樹(shù),并且版本控制 文件和本地版本控制文件結(jié)構(gòu)相同,其中,版本控制文件記錄在Silverlight服務(wù)器上的 每個(gè)文件的版本號(hào),以及本地版本控制文件記錄在Silverlight客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)中的 每個(gè)文件的版本號(hào)。在版本控制單元208中,當(dāng)Silverlight客戶(hù)端請(qǐng)求一文件時(shí),從本地版本控制中 查找有沒(méi)有文件的對(duì)應(yīng)文件記錄;如果存在文件的對(duì)應(yīng)文件記錄,用本地版本控制文件中 記錄的版本號(hào)與副本中同一文件的版本號(hào)進(jìn)行比對(duì);以及如果本地版本控制文件中記錄的 版本號(hào)與副本中同一文件的版本號(hào)相同,則直接從獨(dú)立存儲(chǔ)區(qū)讀取文件。如果本地版本控制文件中記錄的版本號(hào)與副本中同一文件的版本號(hào)不同,則所從 Silverlight服務(wù)器上下載文件,在下載完成后用新下載的文件覆蓋在獨(dú)立存儲(chǔ)區(qū)中的舊 文件,并更新文件在本地版本控制文件中記錄的版本號(hào)。此外,如果不存在文件的對(duì)應(yīng)文件記錄,則從Silverlight服務(wù)器上下載文件,在 下載完成后將文件添加到獨(dú)立存儲(chǔ)區(qū)中,并在本地版本控制文件中添加對(duì)應(yīng)的文件記錄。圖3示出了根據(jù)本發(fā)明實(shí)施例的可控緩存過(guò)程。具體地,首先在服務(wù)器上部署一個(gè)版本控制文件,此文件記錄了服務(wù)器上的每個(gè) 文件的版本號(hào)?!次募? 版本號(hào)=〃 χ-χ-χ-χ “ />〈文件2 版本號(hào)=〃 x-x-x-x 〃 />〈文件n 版本號(hào)=〃 χ-χ-χ-χ “ />此外,在客戶(hù)端獨(dú)立緩存區(qū)部署一個(gè)本地版本控制文件,結(jié)構(gòu)與上面相同。此文件 記錄了客戶(hù)端獨(dú)立緩存區(qū)中每個(gè)文件的版本號(hào)。因此,當(dāng)客戶(hù)端程序啟動(dòng)時(shí),客戶(hù)端會(huì)首先下載服務(wù)器上的版本控制文件,并生成 一個(gè)副本。接下來(lái),當(dāng)客戶(hù)端請(qǐng)求一個(gè)文件時(shí),進(jìn)行以下處理S302,從本地版本控制文件中查找有沒(méi)有對(duì)應(yīng)的文件記錄,如果存在此文件記錄,轉(zhuǎn)到S304,否則,轉(zhuǎn)到S310 ;S304,用本地記錄的版本號(hào)跟服務(wù)器端副本中相同文件的版本號(hào)進(jìn)行比對(duì),如果 版本號(hào)相同,轉(zhuǎn)到S306,否則,轉(zhuǎn)到S308 ;S306,直接從緩存區(qū)讀取該文件;S308,從服務(wù)器上下載該文件;S310,下載完成后將新文件覆蓋獨(dú)立存儲(chǔ)區(qū)中的舊新文件或?qū)⑽募砑拥姜?dú)立存 儲(chǔ)區(qū)中;以及S312,更新本地版本控件文件的對(duì)應(yīng)文件記錄的版本號(hào)或在本地版本控件文件中 添加對(duì)應(yīng)的文件記錄;綜上所述,采用本發(fā)明的可控緩存方案,由于使用了獨(dú)立存儲(chǔ)區(qū),使得緩存的文件 不會(huì)被系統(tǒng)隨意刪除,并且只要服務(wù)器上沒(méi)有新版本,客戶(hù)端便可以一直使用緩存文件。此 外,通過(guò)版本控制機(jī)制,可以高效實(shí)現(xiàn)服務(wù)器與客戶(hù)端文件版本的同步,既不會(huì)出重復(fù)下載 問(wèn)題,也不會(huì)出現(xiàn)客戶(hù)端與服務(wù)器端版本不同步的問(wèn)題。因而,本發(fā)明使得Silverlight客戶(hù)端緩存不再依賴(lài)于瀏覽器,從而避免了瀏覽 器不可控緩存固有的缺陷,極大地提高了客戶(hù)端性能,改善了用戶(hù)體驗(yàn)。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種Silverlight客戶(hù)端可控緩存方法,其特征在于,包括以下步驟步驟S102,在Silverlight客戶(hù)端,使用一獨(dú)立存儲(chǔ)區(qū)為信任的程序創(chuàng)建和維護(hù)所述Silverlight客戶(hù)端的虛擬文件系統(tǒng);步驟S104,在Silverlight服務(wù)器上和所述Silverlight客戶(hù)端的所述獨(dú)立存儲(chǔ)區(qū)上分別部署版本控制文件和本地版本控制文件,用于分別記錄所述Silverlight服務(wù)器和本地的每個(gè)文件的版本號(hào);步驟S106,當(dāng)開(kāi)始啟動(dòng)一程序時(shí),所述Silverlight客戶(hù)端從所述Silverlight服務(wù)器下載所述版本控制文件并生成副本;以及步驟S108,當(dāng)所述Silverlight客戶(hù)端請(qǐng)求一文件時(shí),根據(jù)所述版本控制文件與所述本地版本控制文件中的記錄來(lái)進(jìn)行文件的版本控制,從而實(shí)現(xiàn)對(duì)緩存文件的控制。
2.根據(jù)權(quán)利要求1所述的Silverlight客戶(hù)端可控緩存方法,其特征在于,所述虛擬文 件系統(tǒng)為根目錄中的一個(gè)文件、一個(gè)目錄或者文件樹(shù)。
3.根據(jù)權(quán)利要求1所述的Silverlight客戶(hù)端可控緩存方法,其特征在于,所述版本控 制文件和所述本地版本控制文件的結(jié)構(gòu)相同,其中,所述版本控制文件記錄在所述Silverlight服務(wù)器上的每個(gè)文件的版本號(hào),以及所述本地版本控制文件記錄在所述Silverlight客戶(hù)端的所述獨(dú)立存儲(chǔ)區(qū)中的每個(gè) 文件的版本號(hào)。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的Silverlight客戶(hù)端可控緩存方法,其特征在 于,在所述步驟S108中,當(dāng)所述Silverlight客戶(hù)端請(qǐng)求一文件時(shí),所述Silverlight客戶(hù)端從所述本地版本控制中查找有沒(méi)有所述文件的對(duì)應(yīng)文件記錄;如果存在所述文件的對(duì)應(yīng)文件記錄,所述Silverlight客戶(hù)端用所述本地版本控制文 件中記錄的所述版本號(hào)與所述副本中同一文件的版本號(hào)進(jìn)行比對(duì);以及如果所述本地版本控制文件中記錄的所述版本號(hào)與所述副本中同一文件的版本號(hào)相 同,則所述Silverlight客戶(hù)端直接從所述獨(dú)立存儲(chǔ)區(qū)讀取所述文件。
5.根據(jù)權(quán)利要求4所述的Silverlight客戶(hù)端可控緩存方法,其特征在于,在所述步驟 S108 中,如果所述本地版本控制文件中記錄的所述版本號(hào)與所述副本中同一文件的版本號(hào)不 同,則所述Silverlight客戶(hù)端從所述Silverlight服務(wù)器上下載所述文件,在下載完成后 用新下載的文件覆蓋在所述獨(dú)立存儲(chǔ)區(qū)中的舊文件,并更新所述文件在所述本地版本控制 文件中記錄的版本號(hào)。
6.根據(jù)權(quán)利要求4所述的Silverlight客戶(hù)端可控緩存方法,其特征在于,在所述步驟 S108 中,如果不存在所述文件的對(duì)應(yīng)文件記錄,則所述Silverlight客戶(hù)端從所述 Silverlight服務(wù)器上下載所述文件,在下載完成后將所述文件添加到所述獨(dú)立存儲(chǔ)區(qū)中, 并在所述本地版本控制文件中添加對(duì)應(yīng)的文件記錄。
7.—種Silverlight客戶(hù)端可控緩存系統(tǒng),其特征在于,包括獨(dú)立存儲(chǔ)區(qū)建立單元,用于在Silverlight客戶(hù)端,使用一獨(dú)立存儲(chǔ)區(qū)為信任的程序 創(chuàng)建和維護(hù)所述Silverlight客戶(hù)端的虛擬文件系統(tǒng);版本控制文件部署單元,用于在Silverlight服務(wù)器上和所述Silverlight客戶(hù) 端的所述獨(dú)立存儲(chǔ)區(qū)上分別部署版本控制文件和本地版本控制文件,以分別記錄所述 Silverlight服務(wù)器和本地的每個(gè)文件的版本號(hào);副本生成單元,用于當(dāng)開(kāi)始啟動(dòng)一程序時(shí),從所述Silverlight服務(wù)器下載所述版本 控制文件并生成副本;以及版本控制單元,用于當(dāng)所述Silverlight客戶(hù)端請(qǐng)求一文件時(shí),根據(jù)所述版本控制文 件與所述本地版本控制文件中的記錄來(lái)進(jìn)行文件的版本控制,從而實(shí)現(xiàn)對(duì)緩存文件的控 制。
8.根據(jù)權(quán)利要求7所述的Silverlight客戶(hù)端可控緩存系統(tǒng),其特征在于,所述虛擬文件系統(tǒng)為根目錄中的一個(gè)文件、一個(gè)目錄或者文件樹(shù),并且所述版本控制文件和所述本地版本控制文件的結(jié)構(gòu)相同,其中,所述版本控制文件記錄在所述Silverlight服務(wù)器上的每個(gè)文件的版本號(hào),以及所述本地版本控制文件記錄在所述Silverlight客戶(hù)端的所述獨(dú)立存儲(chǔ)區(qū)中的每個(gè) 文件的版本號(hào)。
9.根據(jù)權(quán)利要求7所述的Silverlight客戶(hù)端可控緩存系統(tǒng),其特征在于,在所述版本 控制單元中,當(dāng)所述Silverlight客戶(hù)端請(qǐng)求一文件時(shí),從所述本地版本控制中查找有沒(méi)有所述文 件的對(duì)應(yīng)文件記錄;如果存在所述文件的對(duì)應(yīng)文件記錄,用所述本地版本控制文件中記錄的所述版本號(hào)與 所述副本中同一文件的版本號(hào)進(jìn)行比對(duì);以及如果所述本地版本控制文件中記錄的所述版本號(hào)與所述副本中同一文件的版本號(hào)相 同,則直接從所述獨(dú)立存儲(chǔ)區(qū)讀取所述文件。
10.根據(jù)權(quán)利要求9所述的Silverlight客戶(hù)端可控緩存系統(tǒng),其特征在于,在所述版 本控制單元中,如果所述本地版本控制文件中記錄的所述版本號(hào)與所述副本中同一文件的版本號(hào)不 同,則所從所述Silverlight服務(wù)器上下載所述文件,在下載完成后用新下載的文件覆蓋 在所述獨(dú)立存儲(chǔ)區(qū)中的舊文件,并更新所述文件在所述本地版本控制文件中記錄的版本 號(hào),并且如果不存在所述文件的對(duì)應(yīng)文件記錄,則從所述Silverlight服務(wù)器上下載所述文 件,在下載完成后將所述文件添加到所述獨(dú)立存儲(chǔ)區(qū)中,并在所述本地版本控制文件中添 加對(duì)應(yīng)的文件記錄。
全文摘要
本發(fā)明公開(kāi)了Silverlight客戶(hù)端可控緩存方法和系統(tǒng),該方法包括在客戶(hù)端,使用獨(dú)立存儲(chǔ)區(qū)為信任的程序創(chuàng)建和維護(hù)客戶(hù)端的虛擬文件系統(tǒng);在服務(wù)器上和客戶(hù)端的獨(dú)立存儲(chǔ)區(qū)上分別部署版本控制文件和本地版本控制文件;當(dāng)開(kāi)始啟動(dòng)程序時(shí),從服務(wù)器下載版本控制文件并生成副本;以及當(dāng)客戶(hù)端請(qǐng)求文件時(shí),根據(jù)版本控制文件與本地版本控制文件中的記錄來(lái)進(jìn)行文件的版本控制,從而實(shí)現(xiàn)對(duì)緩存文件的控制。因而,由于使用了獨(dú)立存儲(chǔ)區(qū),使得緩存的文件不會(huì)被系統(tǒng)隨意刪除,從而只要服務(wù)器上沒(méi)有新版本,客戶(hù)端便可一直使用緩存文件??筛咝?shí)現(xiàn)服務(wù)器與客戶(hù)端文件版本的同步,既不會(huì)重復(fù)下載,也不會(huì)客戶(hù)端與服務(wù)器端版本不同步,以提高客戶(hù)端性能并改善用戶(hù)體驗(yàn)。
文檔編號(hào)H04L29/08GK101882156SQ20101020798
公開(kāi)日2010年11月10日 申請(qǐng)日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者畢濤 申請(qǐng)人:用友軟件股份有限公司