專利名稱::一種oc應(yīng)用的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字廣播領(lǐng)域,更具體的說(shuō),涉及一種oc應(yīng)用的實(shí)現(xiàn)方法。
背景技術(shù):
:在數(shù)字廣播領(lǐng)域常用到對(duì)象輪播技術(shù),簡(jiǎn)稱OC(ObjectCarousel),對(duì)象輪播規(guī)范是基于DSM-CC對(duì)象輪播規(guī)范制定的,DSM-CC協(xié)議(數(shù)字存儲(chǔ)媒體——命令和控制),是一種特殊的協(xié)議,用于提供在數(shù)字存儲(chǔ)媒體上管理MPEG碼流所需的基本控制函數(shù)和操作。此協(xié)議位于操作系統(tǒng)層之上、應(yīng)用層之下,獨(dú)立于所管理的數(shù)字存儲(chǔ)媒體、所關(guān)聯(lián)的網(wǎng)絡(luò)協(xié)議以及所在的操作系統(tǒng),也和數(shù)字存儲(chǔ)媒體是本地的還是遠(yuǎn)程的無(wú)關(guān)。OC應(yīng)用的實(shí)現(xiàn)是指在服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行OC打包并進(jìn)行對(duì)象輪播,通過(guò)對(duì)象輪播技術(shù),OC應(yīng)用終端接收打包后的數(shù)據(jù),將其顯示成為頁(yè)面。對(duì)象輪播技術(shù)OC提供了一種傳輸一組有結(jié)構(gòu)的對(duì)象的方法,對(duì)象包括目錄、文件和流,實(shí)際的目錄和數(shù)據(jù)內(nèi)容存放在前端服務(wù)器中,服務(wù)器使用對(duì)象傳送帶將傳送對(duì)象周期性地插入DVB(DigitalVideoBroadcasting,數(shù)字視頻廣播)信道的TS(TransportStream,傳輸流)包中進(jìn)行傳輸。OC應(yīng)用是由一個(gè)個(gè)的文件組成的,可以是htm/html頁(yè)面,圖片,flash,txt文件,exe可執(zhí)行文件等,這些文件打包成一個(gè)個(gè)數(shù)據(jù)模塊(數(shù)據(jù)Module),每一個(gè)Module都有一個(gè)ModuleID,是Module的唯一標(biāo)識(shí)。一個(gè)模塊(Module)由多個(gè)數(shù)據(jù)塊組成,數(shù)據(jù)塊中存放的是要傳輸?shù)臄?shù)據(jù)文件。所述的Module包括兩種目錄Module和數(shù)據(jù)Module;其中,目錄Module由保存有數(shù)據(jù)Module的目錄信息的文件打包而成?,F(xiàn)有的OC的打包原理及ModuleID分配規(guī)則如下oc應(yīng)用是由一個(gè)個(gè)的文件組成的,這些文件按照它們之間的關(guān)聯(lián)關(guān)系組成目錄樹(shù)的結(jié)構(gòu)。如圖1所示,根目錄(RootDIR)中可以包含多個(gè)文件(filel,file2,……)和子目錄(DIR1,DIR2,......),每一個(gè)子目錄也可以包含多個(gè)文件和下一級(jí)子目錄(如子目錄DIR1中可以包含filell,filel2,……,DIRll,……),一級(jí)一級(jí)如此循環(huán)下去。這樣最終可以組成一個(gè)樹(shù)形結(jié)構(gòu),即目錄樹(shù)。OC在打包的時(shí)候,按照從根目錄到子目錄的順序進(jìn)行,如圖2所示,詳細(xì)過(guò)程如下1)首先打包RootDIR下的file;2)檢査該目錄下是否有子目錄,如果有則進(jìn)入第3)步,否則結(jié)束打包工作;3)打包該子目錄下的file;4)檢査該子目錄下是否還有子目錄,如果有則進(jìn)入第3)步,否則進(jìn)入第5)步;5)返回上一級(jí)目錄,跳到第2)步;例如首先打包RootDIR下的file,如果RootDIR下有子目錄DIR1,則接著打包DIR1下的file,如果DIR1下還有子目錄DIRll,則打包DIRll下的文件,如果DIRll下還有子目錄則繼續(xù)向下打包,否則返回上一級(jí)目錄DIRl,看DIR1中是否還存在其他子目錄,直到DIR1下所有目錄下的文件都打包完為止,然后返回根目錄RootDIR,檢查根目錄下是否還存在其他子目錄,如果有,則按前面的規(guī)則打包,直到RootDIR下所有目錄下的文件都打包完為止,此時(shí)打包工作結(jié)束。由于一個(gè)Module的容量是有限的,在打包的時(shí)候,裝滿一個(gè)Module后,為其分配ModuleID,然后將后面的文件打包到下一個(gè)Module,ModuleID以遞增的方式來(lái)分配。例如前一個(gè)ModuleID=10,則當(dāng)前ModuleID二ll,下一個(gè)ModuleID=12,以此類推。OC應(yīng)用從根目錄下的文件開(kāi)始按順序打包成Module后,在網(wǎng)絡(luò)中以周期性輪播(按ModuleID的順序輪流循環(huán)播發(fā))的方式進(jìn)行傳輸。相應(yīng)的,OC應(yīng)用終端接收時(shí),即終端瀏覽器在打開(kāi)一個(gè)OC應(yīng)用的時(shí)候,先接收目錄Module,解析后得到目錄文件;再一個(gè)個(gè)的逐個(gè)接收數(shù)據(jù)Module,并遍歷目錄樹(shù),在目錄樹(shù)文件中進(jìn)行查詢當(dāng)前接收到的數(shù)據(jù)包的屬性,確定此數(shù)據(jù)Module中是否有我們需要的數(shù)據(jù)。若存在我們需要的數(shù)據(jù),對(duì)數(shù)據(jù)Module進(jìn)行解析后,得到數(shù)據(jù)Module中我們需要的數(shù)據(jù),保存到OC應(yīng)用終端的內(nèi)存中,并根據(jù)這些數(shù)據(jù)打開(kāi)相應(yīng)的頁(yè)面;若不是我們需要的數(shù)據(jù),則將其丟棄。若頁(yè)面中還存在沒(méi)有完全打開(kāi)的部分,則繼續(xù)査找接收數(shù)據(jù)包,繼續(xù)打開(kāi)數(shù)據(jù)Module中的數(shù)據(jù),打開(kāi)相應(yīng)的頁(yè)面。這種OC打包的方法存在的一個(gè)問(wèn)題是在OC應(yīng)用終端打開(kāi)OC頁(yè)面時(shí),每次新打開(kāi)一個(gè)頁(yè)面時(shí),都需要接收此頁(yè)面所需要的所有的數(shù)據(jù)Module。因此,打開(kāi)一個(gè)頁(yè)面的時(shí)間主要依賴于將此頁(yè)面所有所需要的數(shù)據(jù)Module接收下來(lái)的時(shí)間,由于數(shù)據(jù)Module的接收需要的時(shí)間較長(zhǎng),因而每個(gè)頁(yè)面打開(kāi)的時(shí)間也較長(zhǎng),影響了用戶瀏覽OC頁(yè)面的速度。這種OC打包的方法存在的另一個(gè)問(wèn)題是由于數(shù)據(jù)文件可以是htm/html、圖片、txt等等,當(dāng)用戶在訪問(wèn)一個(gè)頁(yè)面(htm/html)時(shí),需要調(diào)用很多文件(頁(yè)面中可能引用了很多元素,這些元素可能是鏈接、圖片、txt等等,即這些元素以文件的方式存放),由于這些文件可能存在不同的目錄下,零散的被打包在不同的Module中,而ModuleID是以遞增的方式來(lái)分配的,因此這些Module的ModuleID可能相隔很遠(yuǎn)。在接收OC數(shù)據(jù)的時(shí)候,由于內(nèi)存限制,一次最多可以接收的Module的數(shù)量是有限的,而一個(gè)頁(yè)面中調(diào)用的文件往往根據(jù)其文件類型放置在不同的文件夾中,OC打包后,一個(gè)頁(yè)面中調(diào)用的文件常常打包在幾個(gè)不同的ModuleID相隔很遠(yuǎn)的數(shù)據(jù)Module中。因此,要打開(kāi)這樣的頁(yè)面,其中要獲取的幾個(gè)ModuleID相隔很遠(yuǎn)的Module的時(shí)候,需要進(jìn)行多次接收。這樣更加影響了用戶瀏覽OC頁(yè)面的速度。
發(fā)明內(nèi)容為克服上述缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種能提高用戶瀏覽oc頁(yè)面速度的oc應(yīng)用的實(shí)現(xiàn)方法。本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的一種OC應(yīng)用的實(shí)現(xiàn)方法,包括以下步驟A:服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行OC打包并進(jìn)行對(duì)象輪播;B:OC應(yīng)用終端接收打包后的數(shù)據(jù),顯示成為頁(yè)面;其中,所述的步驟A中包括以下步驟Ah整理相關(guān)數(shù)據(jù)文件;A2:將數(shù)據(jù)文件及與上述數(shù)據(jù)文件相對(duì)應(yīng)的目錄文件進(jìn)行OC打包形成數(shù)據(jù)Module及目錄Module;所述的步驟B中包括以下步驟Bl:接收第一個(gè)起始ModuleID所代表的目錄Module,并對(duì)其進(jìn)行解析得到相關(guān)目錄;B2:根據(jù)用戶的命令接收當(dāng)前頁(yè)面所需要的數(shù)據(jù)Module;解析得到當(dāng)前頁(yè)面;其中所述的步驟B2后,還包括預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module的步驟。所述的步驟A中,與數(shù)據(jù)文件相對(duì)應(yīng)的目錄文件中保存有相關(guān)數(shù)據(jù)文件的ModuleID的映射關(guān)系;對(duì)應(yīng)的,所述的步驟B2中,根據(jù)目錄文件中保存有相關(guān)數(shù)據(jù)文件的ModuleID的映射關(guān)系,從得到的ModuleID開(kāi)始,從當(dāng)前的ModuleID對(duì)應(yīng)的數(shù)據(jù)Module開(kāi)始接收并解析,直至得到當(dāng)前頁(yè)面所需要的數(shù)據(jù)。由于在目錄中對(duì)應(yīng)的設(shè)置有相關(guān)數(shù)據(jù)ModuleID的映射關(guān)系的屬性,則在對(duì)當(dāng)前頁(yè)面的下一級(jí)頁(yè)面所需要的數(shù)據(jù)Module進(jìn)行預(yù)接收時(shí),可以通過(guò)目錄中的映射關(guān)系査詢得到當(dāng)前頁(yè)面的下一級(jí)頁(yè)面的ModuleID,根據(jù)ModuleID有針對(duì)性的對(duì)數(shù)據(jù)Module進(jìn)行選擇性的預(yù)接收。所述的映射關(guān)系為所述的數(shù)據(jù)ModuleID由其數(shù)據(jù)所在的目錄位置的級(jí)別屬性確定。所述的ModuleID由不同的數(shù)位代表不同的目錄級(jí)別和數(shù)據(jù)流水號(hào);由相同數(shù)位的不同數(shù)字代表同一目錄級(jí)別下的不同目錄。所述的數(shù)據(jù)流水號(hào)對(duì)應(yīng)的ModuleID中的數(shù)位最低。所述的映射關(guān)系為所述的ModuleID為十六進(jìn)制的四位數(shù)字,其第一位對(duì)應(yīng)第一級(jí)子目錄;其第二位對(duì)應(yīng)第二級(jí)子目錄;其第三位對(duì)應(yīng)第三級(jí)子目錄;第四位對(duì)應(yīng)每個(gè)子目錄中的數(shù)據(jù)打包而成的遞增的數(shù)據(jù)號(hào);其中,根目錄下的文件的ModuleID,前三位為零,最后一位代表數(shù)據(jù)ModuleID的流水號(hào)。由于將數(shù)據(jù)ModuleID和目錄結(jié)構(gòu)綁定,即根據(jù)目錄結(jié)構(gòu)來(lái)分配特定的ModuleID,使得可以直接根據(jù)數(shù)據(jù)文件所在的目錄中的位置推斷出其ModuleID,不需要在目錄中單獨(dú)設(shè)列ModuleID的屬性,節(jié)省了目錄中的資源。所述的步驟A2中,當(dāng)所述的目錄Module數(shù)量多于一個(gè)時(shí),所述的根目錄下的文件的ModuleID設(shè)置在第一個(gè)目錄ModuleID之后;其他的目錄ModuleID之前;對(duì)應(yīng)的,所述的步驟B1中,當(dāng)所述的目錄Module數(shù)量多于一個(gè)時(shí),先接收根目錄下的文件的數(shù)據(jù)Module;解析得到首頁(yè)后,再接收其他的目錄Module,得到與所有數(shù)據(jù)文件相對(duì)應(yīng)的完整的目錄文件。由于根目錄下的文件的數(shù)據(jù)Module的接收順序設(shè)置在接收第一個(gè)目錄Module之后,接收其他的目錄Module之前,這樣的設(shè)計(jì)可以提高首頁(yè)打開(kāi)的速度,改善用戶體驗(yàn)。所述的步驟A2中,將數(shù)據(jù)文件打包形成數(shù)據(jù)Module的過(guò)程還包括將數(shù)據(jù)文件中同一個(gè)頁(yè)面需要的所有文件打包在同一個(gè)數(shù)據(jù)module或幾個(gè)相鄰的數(shù)據(jù)module中的步驟。由于在OC打包時(shí),將同一個(gè)頁(yè)面所需要的所有文件打包在一起,使得終端在接收時(shí),只需要接收一個(gè)或幾個(gè)相鄰的數(shù)據(jù)module即可打開(kāi)一個(gè)頁(yè)面,提高了打開(kāi)頁(yè)面時(shí)接收到的數(shù)據(jù)module中數(shù)據(jù)的使用率,頁(yè)面中所需要的數(shù)據(jù)能更加集中的接收,減少了接收次數(shù),提高了每個(gè)頁(yè)面的打開(kāi)速度,可以進(jìn)一步的提高用戶瀏覽OC頁(yè)面的速度。所述的步驟A1中,整理相關(guān)數(shù)據(jù)文件的步驟包括將每個(gè)頁(yè)面中需要的所有不同類型的文件放入同一個(gè)文件夾中;所述的步驟A2中,對(duì)數(shù)據(jù)文件進(jìn)行OC打包時(shí),依次從根目錄向子目錄進(jìn)行。所述的步驟A1中將首頁(yè)的所有的文件放在根目錄文件夾內(nèi);將與上一級(jí)頁(yè)面鏈接的下一級(jí)頁(yè)面中的所有文件放置在上一級(jí)頁(yè)面所在文件夾的下一級(jí)子目錄中。由于根據(jù)數(shù)據(jù)文件之間的關(guān)聯(lián)關(guān)系規(guī)定目錄結(jié)構(gòu),將一個(gè)頁(yè)面所需要的所有不同的文件放入同一個(gè)文件夾中后,根據(jù)目錄樹(shù)中各文件之間的上下級(jí)關(guān)聯(lián)關(guān)系,將OC應(yīng)用中的文件按特定順序打包成Module,使一個(gè)頁(yè)面的相關(guān)文件所在的Module的ModuleID排在相鄰的位置,當(dāng)用戶打開(kāi)OC應(yīng)用時(shí),瀏覽器自動(dòng)接收當(dāng)前瀏覽頁(yè)面的組成文件所在的Module,由于每個(gè)頁(yè)面中所需要的數(shù)據(jù)文件打包而成的數(shù)據(jù)Module的ModuleID位置相鄰,使得OC應(yīng)用終端進(jìn)行數(shù)據(jù)接收時(shí),能大大減少其接收數(shù)據(jù)的次數(shù),節(jié)省了接收時(shí)間。尤其,在預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module時(shí),當(dāng)前頁(yè)面所鏈接到的下一級(jí)頁(yè)面打包后的數(shù)據(jù)Module就排在當(dāng)前得到的數(shù)據(jù)Module之后,OC應(yīng)用終端需要接收的數(shù)據(jù)Module的順序幾乎就是服務(wù)器端對(duì)象輪播數(shù)據(jù)Module的順序,大大提高了OC頁(yè)面打開(kāi)時(shí),從服務(wù)器端得到數(shù)據(jù)Module的效率,進(jìn)一步的提高了用戶瀏覽OC頁(yè)面的速度。本發(fā)明由于在接收當(dāng)前頁(yè)面所需要的數(shù)據(jù)Module,解析得到當(dāng)前頁(yè)面的步驟后,增加了預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module的步驟,而用戶訪問(wèn)頁(yè)面的習(xí)慣通常是通過(guò)頁(yè)面中的鏈接一級(jí)級(jí)的進(jìn)行訪問(wèn),使得我們?cè)诖蜷_(kāi)當(dāng)前頁(yè)面時(shí),可以預(yù)接收下一級(jí)有可能會(huì)打開(kāi)的頁(yè)面所需要的數(shù)據(jù)Module,保存在接收裝置的緩存中,這樣,在用戶打開(kāi)下一級(jí)頁(yè)面時(shí),可以直接從緩存中調(diào)出所需的數(shù)據(jù),直接打開(kāi)頁(yè)面,大大的節(jié)省的打開(kāi)OC頁(yè)面的時(shí)間。圖l是現(xiàn)有技術(shù)中OC應(yīng)用的目錄樹(shù)的結(jié)構(gòu)示意圖2是現(xiàn)有技術(shù)中OC打包過(guò)程的流程圖3是本發(fā)明實(shí)施例中ModuleID的分配示意圖。具體實(shí)施例方式下面結(jié)合附圖和較佳的實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。本發(fā)明提供了一種OC應(yīng)用的實(shí)現(xiàn)方法,其發(fā)明構(gòu)思主要是先整理相關(guān)數(shù)據(jù)文件;服務(wù)器端將數(shù)據(jù)文件及與上述數(shù)據(jù)文件相對(duì)應(yīng)的目錄文件進(jìn)行OC打包形成數(shù)據(jù)Module及目錄Module;而OC應(yīng)用終端接收打包后的數(shù)據(jù)接收第一個(gè)起始ModuleID所代表的目錄Module,并對(duì)其進(jìn)行解析得到相關(guān)目錄;根據(jù)用戶的命令接收當(dāng)前頁(yè)面所需要的數(shù)據(jù)Module;解析得到當(dāng)前頁(yè)面;在打開(kāi)了當(dāng)前的頁(yè)面之后,預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module。由于用戶訪問(wèn)頁(yè)面的習(xí)慣通常是通過(guò)頁(yè)面中的鏈接一級(jí)級(jí)的進(jìn)行訪問(wèn),用戶在瀏覽當(dāng)前頁(yè)面的時(shí)候,OC應(yīng)用終端找到當(dāng)前頁(yè)面的下一級(jí)頁(yè)面,并將下一級(jí)頁(yè)面中涉及到的Module先接收下來(lái),這樣當(dāng)用戶進(jìn)入下一級(jí)頁(yè)面的時(shí)候,所有數(shù)據(jù)已經(jīng)接收完成,直接從緩存中取出并打開(kāi)頁(yè)面,節(jié)省了終端接收時(shí)間,提高了用戶打開(kāi)OC頁(yè)面的速度。為了能選擇性的預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module,在OC打包時(shí),在與數(shù)據(jù)文件相對(duì)應(yīng)的目錄文件中保存有相關(guān)數(shù)據(jù)文件的ModuleID的映射關(guān)系。這種保存在目錄文件中的映射關(guān)系是一種數(shù)據(jù)文件與其打包形成的數(shù)據(jù)Module的ModnleID信息,既可以直接保存在目錄中,如可以在目錄中增設(shè)一欄信息,保存有與相應(yīng)的數(shù)據(jù)Module相對(duì)應(yīng)的數(shù)據(jù)ModuleID。這樣在接收數(shù)據(jù)Module時(shí),可以直接在目錄文件中査詢到所需數(shù)據(jù)的ModuleID,選擇只接收所需的數(shù)據(jù)Module;也可以由其數(shù)據(jù)所在的目錄位置的級(jí)別屬性確定數(shù)據(jù)所述的數(shù)據(jù)Module的ModuleID,根據(jù)目錄位置的級(jí)別屬性推斷出所需要的數(shù)據(jù)Module的ModuleID,選擇性的接收。本發(fā)明實(shí)施例中采用的是后一種方式,這種由其數(shù)據(jù)所在的目錄位置的級(jí)別屬性確定數(shù)據(jù)所述的數(shù)據(jù)Module的ModuleID的方法將數(shù)據(jù)Module的ModuleID與目錄位置的級(jí)別屬性抽象地對(duì)應(yīng)起來(lái),為數(shù)據(jù)Module重新分配ModuleID,不用對(duì)原目錄文件的結(jié)構(gòu)進(jìn)行任何修改,更為方便。而在目錄中對(duì)應(yīng)的設(shè)置有相關(guān)數(shù)據(jù)ModuleID的映射關(guān)系的屬性,則在對(duì)當(dāng)前頁(yè)面的下一級(jí)頁(yè)面所需要的數(shù)據(jù)Module進(jìn)行預(yù)接收時(shí),可以通過(guò)目錄中的映射關(guān)系查詢得到當(dāng)前頁(yè)面的下一級(jí)頁(yè)面的ModuleID,根據(jù)ModuleID有針對(duì)性的對(duì)數(shù)據(jù)Module進(jìn)行選擇性的預(yù)接收。當(dāng)然,若不采用上述在目錄文件中保存有相關(guān)數(shù)據(jù)文件的ModuleID的映射關(guān)系的方法,采用其它的方法也是可以實(shí)現(xiàn)本發(fā)明的目的的。比如,可以在打開(kāi)當(dāng)前頁(yè)面時(shí),預(yù)接收排在當(dāng)前接收的數(shù)據(jù)Module之后一些數(shù)據(jù)Module,查詢是否是當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module。這樣的方法雖然不一定能夠有效快速的査找到下一級(jí)頁(yè)面所需文件的數(shù)據(jù)Module,效率較低,但仍然能實(shí)現(xiàn)我們預(yù)接收下一級(jí)頁(yè)面的數(shù)據(jù)Module的目的。在進(jìn)行對(duì)象輪播(OC)前,將數(shù)據(jù)文件中同一個(gè)頁(yè)面需要的所有文件打包在同一個(gè)數(shù)據(jù)module或幾個(gè)相鄰的數(shù)據(jù)module中,可以進(jìn)一步提高用戶瀏覽OC頁(yè)面的速度。由于在OC打包時(shí),將同一個(gè)頁(yè)面所需要的所有文件打包在一起,使得終端在接收時(shí),只需要接收一個(gè)或幾個(gè)相鄰的數(shù)據(jù)module即可打開(kāi)一個(gè)頁(yè)面,提高了打開(kāi)頁(yè)面時(shí)接收到的數(shù)據(jù)module中數(shù)據(jù)的使用率,頁(yè)面中所需要的數(shù)據(jù)能更加集中的接收,減少了接收次數(shù),提高了每個(gè)頁(yè)面的打開(kāi)速度。如可先將文件按照特定規(guī)則進(jìn)行排列后進(jìn)行OC打包成為Module,并為每個(gè)Module重新分配ModuleID。1):目錄樹(shù)結(jié)構(gòu)的排列規(guī)則在前期每個(gè)OC應(yīng)用的目錄樹(shù)結(jié)構(gòu)按頁(yè)面間的關(guān)聯(lián)關(guān)系來(lái)排上下級(jí),即將同一頁(yè)面引用的所有文件放在同一個(gè)目錄下。例如假設(shè)用戶要訪問(wèn)的OC應(yīng)用的首頁(yè),首頁(yè)中可能引用了3個(gè)鏈接,5張圖片,2個(gè)文本,那么我們將首頁(yè)的htm/html文件,3個(gè)被引用的htm/html文件,5個(gè)圖片文件,2個(gè)文本文件全部放在根目錄下。根目錄下的第一級(jí)子目錄中保存的是首頁(yè)中鏈接的子頁(yè)面所引用的所有元素,包括其子頁(yè)面中可能引用的htm/html文件(這個(gè)引用的htm/html文件與鏈接的下一個(gè)頁(yè)面不同,這個(gè)引用的htm/html文件是當(dāng)前頁(yè)面組成的一部分)、鏈接、圖片、文本等。依次類推,第一級(jí)子目錄下的第二級(jí)子目錄中保存的則是第一級(jí)子目錄所對(duì)應(yīng)的子頁(yè)面中再鏈接到的子頁(yè)面的子頁(yè)面所引用的所有元素。由于根據(jù)數(shù)據(jù)文件之間的關(guān)聯(lián)關(guān)系規(guī)定目錄結(jié)構(gòu),將一個(gè)頁(yè)面所需要的所有不同的文件放入同一個(gè)文件夾中后,根據(jù)目錄樹(shù)中各文件之間的上下級(jí)關(guān)聯(lián)關(guān)系,將OC應(yīng)用中的文件按特定順序打包成Module,,使一個(gè)頁(yè)面的相關(guān)文件所在的Module的ModulelD排在相鄰的位置,當(dāng)用戶打開(kāi)OC應(yīng)用時(shí),瀏覽器自動(dòng)接收當(dāng)前瀏覽頁(yè)面的組成文件所在的Module,由于這些Module的ModulelD位置相鄰,使得OC應(yīng)用終端進(jìn)行數(shù)據(jù)接收時(shí),能大大減少其接收數(shù)據(jù)的次數(shù),節(jié)省了接收時(shí)間,從而進(jìn)一步大大提高用戶瀏覽OC頁(yè)面的速度。由于各種頁(yè)面之間的重復(fù)鏈接或返回鏈接,目錄下的所有數(shù)據(jù)文件是有可能存在冗余的。比如當(dāng)?shù)诙?jí)子目錄中引用了首頁(yè)的鏈接時(shí),首頁(yè)中引用的所有元素作為此第一級(jí)子目錄的第三級(jí)子目錄,只是這里的與根目錄下的數(shù)據(jù)相同的第三級(jí)子目錄不再擁有再下一級(jí)的子目錄。2):ModulelD的分配規(guī)則打包后進(jìn)行傳輸?shù)臄?shù)據(jù)由兩種類型的Module組成,g卩由組成OC應(yīng)用的所有文件打包而成的數(shù)據(jù)Module,和用來(lái)存放目錄樹(shù)結(jié)構(gòu)目錄的Module,即DIR文件所在的Module。目錄Module用來(lái)存放目錄,以及目錄與目錄、目錄與文件之間上下級(jí)關(guān)系。由于Module的容量有限,當(dāng)目錄太多時(shí),則需要用多個(gè)Module來(lái)存放目錄樹(shù)結(jié)構(gòu)。ModulelD由不同的數(shù)位代表不同的目錄級(jí)別和數(shù)據(jù)流水號(hào);由相同數(shù)位的不同數(shù)字代表同一目錄級(jí)別下的不同目錄。其中,數(shù)據(jù)流水號(hào)對(duì)應(yīng)的ModuleID中的數(shù)位最低。如圖3所示,ModuleID值的分配規(guī)則可以設(shè)置如下a)目錄文件打包而成的Module中,第一個(gè)ModuleID的值設(shè)為0x0001;b)根目錄下的文件的ModuleID取值范圍為0x00020x000X;0x000X代表根目錄下文件的數(shù)據(jù)量大小不同,占用的Module個(gè)數(shù)不確定,假如根目錄下文件需要占用2個(gè)Module,那么其ModuleID分別為0x0002和0x0003;c)如果目錄比較多,數(shù)據(jù)量比較大,那么DIR文件會(huì)打包成多個(gè)目錄Module,DIR打包形成的Module的第二個(gè)及之后的ModuleID的取值范圍是0x000(X+l)-0x000F;即它是緊接著根目錄下文件的ModuleID來(lái)分配的,按b)中的例子,那么此時(shí)后續(xù)的目錄Module的ModuleID將從0x0004開(kāi)始分配;d)—級(jí)子目錄l(根目錄下第一個(gè)子目錄)中的文件ModuleID取值范圍是0xl0000xl00F;—級(jí)子目錄2(根目錄下第二個(gè)子目錄)中的文件ModuleID取值范圍是0x20000x200F;以此類推;e)二級(jí)子目錄11(一級(jí)子目錄1下第一個(gè)子目錄)中的文件ModuleID取值范圍是0xll000xll0F;二級(jí)子目錄12(—級(jí)子目錄1下第二個(gè)子目錄)中的文件ModuleID取值范圍是0xl2000xl20F;以此類推;f)二級(jí)子目錄21(—級(jí)子目錄2下第一個(gè)子目錄)中的文件ModuleID取值范圍是0x21000x210F;二級(jí)子目錄22(—級(jí)子目錄2下第二個(gè)子目錄)中的文件ModuleID取值范圍是0x22000x220F;以此類推;g)三級(jí)子目錄按以上方式類推下去;h)對(duì)于三級(jí)目錄中的再下一級(jí)子目錄文件,仍然和三級(jí)子目錄一起打包在三級(jí)子目錄所在的目錄Module中。上述ModuleID的分配方式如下表(表l)所示表1ModuleID值分配表<table>tableseeoriginaldocumentpage14</column></row><table>根據(jù)ModuleID的分配規(guī)則,可以直接根據(jù)ModuleID得知該Module中的文件屬于目錄樹(shù)結(jié)構(gòu)中的哪個(gè)級(jí)別,哪個(gè)位置。例如ModuleID=0xl508,表示該Module中的文件位于目錄樹(shù)中根目錄^第1個(gè)子目錄—第5個(gè)子目錄中。上述的ModuleID的分配規(guī)則僅僅是一個(gè)分配方法,其取值范圍是可以改變的。例如目錄文件DIR所在的第一個(gè)目錄Module的ModuleID僅僅是用來(lái)標(biāo)識(shí)終端接收數(shù)據(jù)的起始點(diǎn),因此可以等于0x0001,也可以用其他的任意值代替。比如可以將取值范圍倒過(guò)來(lái)分配??蓪⒛夸汳odule所在的第一個(gè)ModuleID設(shè)為0xFFFF,根目錄下的文件ModuleID取值范圍為0xFFFE0xFFFX,目錄文件DIR所在的第二個(gè)及以后的ModuleID取值范圍為0xFFFX0xFFF0,依次類推。3):對(duì)應(yīng)的OC應(yīng)用終端接收的方法當(dāng)打開(kāi)一個(gè)OC應(yīng)用時(shí),終端的接收順序如下a)首先接收ModuleID=0x0001的Module,即DIR所在的第一個(gè)Module,得到該OC應(yīng)用的目錄樹(shù)結(jié)構(gòu);b)緊接著接收根目錄下的文件所在的Module,解析后得到首頁(yè);如果目錄樹(shù)結(jié)構(gòu)存放在多個(gè)Module中,那么執(zhí)行C),否則執(zhí)行d);c)接收DIR所在的其他Module,得到完整的目錄樹(shù)結(jié)構(gòu);d)預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module;e)根據(jù)用戶的瀏覽順序,當(dāng)用戶訪問(wèn)某頁(yè)面時(shí),先查詢OC應(yīng)用終端的緩存中,是否有用戶選擇的頁(yè)面文件所需要的數(shù)據(jù)Module,若有,則對(duì)其解析得到用戶選擇打開(kāi)的頁(yè)面;若沒(méi)有,OC應(yīng)用終端則先根據(jù)目錄中對(duì)應(yīng)的數(shù)據(jù)所在目錄位置的級(jí)別屬性關(guān)系,找到組成該頁(yè)面的文件所在的Module的ModulelD(由于OC打包時(shí)依據(jù)的上述排列規(guī)則,且組成該頁(yè)面的文件存放在相同或相鄰的Module中,這樣平均接收一次就找到所需的ModulelD)接收上述數(shù)據(jù)ModulelD對(duì)應(yīng)的數(shù)據(jù)Module,解析數(shù)據(jù)Module后,即可打開(kāi)用戶所需訪問(wèn)的頁(yè)面。f)用戶繼續(xù)訪問(wèn)頁(yè)面,轉(zhuǎn)步驟d)。其中,目錄Module在接收之后是常駐內(nèi)存的,而由于OC應(yīng)用終端的存儲(chǔ)空間有限,數(shù)據(jù)Module是根據(jù)用戶瀏覽的頁(yè)面不同而不斷更新的。在終端接收時(shí),由于用戶使用時(shí),一般都是從首頁(yè)開(kāi)始操作,因此將根目錄下文件的接收安排在DIR第一個(gè)Module之后,可以提高首頁(yè)打開(kāi)的速度,改善用戶體驗(yàn)。另外,在對(duì)OC打包時(shí),由于每個(gè)頁(yè)面的htm/html文件中都記載有當(dāng)前頁(yè)面所需要的所有文件的信息,即使不將這些需要的文件放在同一個(gè)目錄下,也可以通過(guò)解析當(dāng)前頁(yè)面的htm/html文件找到當(dāng)前頁(yè)面引用的所有文件,將這些文件在OC打包時(shí)打包成一個(gè)數(shù)據(jù)module,如果一個(gè)數(shù)據(jù)module容量不夠,則可以打包成多個(gè)moduleID相鄰的數(shù)據(jù)module。這樣,雖然保存OC應(yīng)用的文件夾沒(méi)有變動(dòng),仍然能夠?qū)崿F(xiàn)將數(shù)據(jù)文件中同一個(gè)頁(yè)面需要的所有文件打包在同一個(gè)數(shù)據(jù)module或幾個(gè)相鄰的數(shù)據(jù)module中的目的。以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種OC應(yīng)用的實(shí)現(xiàn)方法,包括以下步驟A服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行OC打包并進(jìn)行對(duì)象輪播;BOC應(yīng)用終端接收打包后的數(shù)據(jù),顯示成為頁(yè)面;其中,所述的步驟A中包括以下步驟A1整理相關(guān)數(shù)據(jù)文件;A2將數(shù)據(jù)文件及與上述數(shù)據(jù)文件相對(duì)應(yīng)的目錄文件進(jìn)行OC打包形成數(shù)據(jù)Module及目錄Module;所述的步驟B中包括以下步驟B1接收第一個(gè)起始ModuleID所代表的目錄Module,并對(duì)其進(jìn)行解析得到相關(guān)目錄;B2根據(jù)用戶的命令接收當(dāng)前頁(yè)面所需要的數(shù)據(jù)Module;解析得到當(dāng)前頁(yè)面;其特征在于所述的步驟B2后,還包括預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module的步驟。2、如權(quán)利要求l所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的步驟A中,與數(shù)據(jù)文件相對(duì)應(yīng)的目錄文件中保存有相關(guān)數(shù)據(jù)文件的ModuleID的映射關(guān)系;對(duì)應(yīng)的,所述的步驟B2中,根據(jù)目錄文件中保存有相關(guān)數(shù)據(jù)文件的ModuleID的映射關(guān)系,從得到的ModuleID開(kāi)始,從當(dāng)前的ModuleID對(duì)應(yīng)的數(shù)據(jù)Module開(kāi)始接收并解析,直至得到當(dāng)前頁(yè)面所需要的數(shù)據(jù)。3、如權(quán)利要求2所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的映射關(guān)系為所述的數(shù)據(jù)ModuleID由其數(shù)據(jù)所在的目錄位置的級(jí)別屬性確定。4、如權(quán)利要求3所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的ModuleID由不同的數(shù)位代表不同的目錄級(jí)別和數(shù)據(jù)流水號(hào);由相同數(shù)位的不同數(shù)字代表同一目錄級(jí)別下的不同目錄。5、如權(quán)利要求4所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的數(shù)據(jù)流水號(hào)對(duì)應(yīng)的ModuleID中的數(shù)位最低。6、如權(quán)利要求5所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的映射關(guān)系為所述的ModuleID為十六進(jìn)制的四位數(shù)字,其第一位對(duì)應(yīng)第一級(jí)子目錄;其第二位對(duì)應(yīng)第二級(jí)子目錄;其第三位對(duì)應(yīng)第三級(jí)子目錄;第四位對(duì)應(yīng)每個(gè)子目錄中的數(shù)據(jù)打包而成的遞增的數(shù)據(jù)號(hào);其中,根目錄下的文件的ModuleID,前三位為零,最后一位代表數(shù)據(jù)ModuleID的流水號(hào)。7、如權(quán)利要求2所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的步驟A2中,當(dāng)所述的目錄Module數(shù)量多于一個(gè)時(shí),所述的根目錄下的文件的ModuleID設(shè)置在第一個(gè)目錄ModuleID之后;其他的目錄ModuleID之前;對(duì)應(yīng)的,所述的步驟B1中,當(dāng)所述的目錄Module數(shù)量多于一個(gè)時(shí),先接收根目錄下的文件的數(shù)據(jù)Module;解析得到首頁(yè)后,再接收其他的目錄Module,得到與所有數(shù)據(jù)文件相對(duì)應(yīng)的完整的目錄文件。8、如權(quán)利要求l所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的歩驟A2中,將數(shù)據(jù)文件打包形成數(shù)據(jù)Module的過(guò)程還包括將數(shù)據(jù)文件中同一個(gè)頁(yè)面需要的所有文件打包在同一個(gè)數(shù)據(jù)module或幾個(gè)相鄰的數(shù)據(jù)module中的步驟。9、如權(quán)利要求8所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的步驟A1中,整理相關(guān)數(shù)據(jù)文件的步驟包括將每個(gè)頁(yè)面中需要的所有不同類型的文件放入同一個(gè)文件夾中;所述的步驟A2中,對(duì)數(shù)據(jù)文件進(jìn)行OC打包時(shí),依次從根目錄向子目錄進(jìn)行。10、如權(quán)利要求1所述的一種OC應(yīng)用的實(shí)現(xiàn)方法,其特征在于所述的步驟A1中將首頁(yè)的所有的文件放在根目錄文件夾內(nèi);將與上一級(jí)頁(yè)面鏈接的下一級(jí)頁(yè)面中的所有文件放置在上一級(jí)頁(yè)面所在文件夾的下一級(jí)子目錄中。全文摘要本發(fā)明公開(kāi)了一種OC應(yīng)用的實(shí)現(xiàn)方法,其步驟為服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行OC打包并進(jìn)行對(duì)象輪播;OC應(yīng)用終端接收打包后的數(shù)據(jù),顯示成為頁(yè)面;其后預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module的步驟。本發(fā)明由于在解析得到當(dāng)前頁(yè)面的步驟后,增加了預(yù)接收當(dāng)前打開(kāi)的頁(yè)面所鏈接到的相關(guān)的下一級(jí)頁(yè)面所需要的文件的數(shù)據(jù)Module的步驟,使得我們?cè)诖蜷_(kāi)當(dāng)前頁(yè)面時(shí),可以預(yù)接收下一級(jí)有可能會(huì)打開(kāi)的頁(yè)面所需要的數(shù)據(jù)Module,保存在接收裝置的緩存中,在用戶打開(kāi)下一級(jí)頁(yè)面時(shí),可以直接從緩存中調(diào)出所需的數(shù)據(jù),直接打開(kāi)頁(yè)面,大大的節(jié)省的打開(kāi)OC頁(yè)面的時(shí)間。文檔編號(hào)H04N7/24GK101179717SQ20071007757公開(kāi)日2008年5月14日申請(qǐng)日期2007年12月4日優(yōu)先權(quán)日2007年12月4日發(fā)明者琦樂(lè),徐佳宏申請(qǐng)人:深圳市茁壯網(wǎng)絡(luò)技術(shù)有限公司