欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種JavaScript文件的管理方法、裝置和系統(tǒng)的制作方法

文檔序號(hào):6585763閱讀:157來(lái)源:國(guó)知局
專利名稱:一種JavaScript文件的管理方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本申請(qǐng)涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別是涉及一種JavMcript文件的管理方法、裝置和 系統(tǒng)。
背景技術(shù)
Jav必cript是一種面向?qū)ο蟮膭?dòng)態(tài)類型的區(qū)分大小寫的客戶端腳本語(yǔ)言,主要用 于解決服務(wù)器端語(yǔ)言,比如Perl語(yǔ)言,遺留的速度問(wèn)題,為客戶提供更流暢的瀏覽效果。由 于服務(wù)器端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,而網(wǎng)絡(luò)速度相當(dāng)緩慢,驗(yàn)證步驟浪費(fèi)的時(shí)間太多,因此, JavaScript提供了數(shù)據(jù)驗(yàn)證的基本功能。現(xiàn)有技術(shù)中,通常將JavaScript文件部署到HTTP (Hypertext Transferfrotocol,超文本傳輸協(xié)議)服務(wù)器上,例如Apache,并在TOB(網(wǎng)頁(yè))應(yīng)用的 HTML (Hyper Text Mark-up Language,超文本標(biāo)記語(yǔ)言)頁(yè)面上書寫JavaScript請(qǐng)求的 URL (Uniform Resource Locator,統(tǒng)一資源定位符)。客戶端瀏覽器訪問(wèn)頁(yè)面時(shí),解析頁(yè)面 上的Javakript請(qǐng)求,并從Javakript服務(wù)器下載相應(yīng)的Javakript文件。在實(shí)現(xiàn)本申請(qǐng)的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問(wèn)題由于JavMcript文件之間不存在依賴,需要在瀏覽器的頁(yè)面上聲明所有使用到 的Javakript文件對(duì)應(yīng)的Javakript請(qǐng)求,增加了 Javakript請(qǐng)求數(shù);如果在同一個(gè)頁(yè) 面上有重復(fù)聲明的JavMcript請(qǐng)求,會(huì)造成瀏覽器重復(fù)下載JavMcript文件,增加了 HTTP 請(qǐng)求數(shù);如果用戶不了解JavMcript文件之間的依賴情況,有可能會(huì)聲明頁(yè)面上沒(méi)有使用 到的JavMcript文件,嚴(yán)重地影響到頁(yè)面的下載速度,降低了用戶訪問(wèn)網(wǎng)站的體驗(yàn)。

發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┮环NJavMcript文件的管理方法、裝置和系統(tǒng),用于提高頁(yè)面載入速 度、加速網(wǎng)頁(yè)下載。本申請(qǐng)?zhí)岢鲆环NJavMcript文件的管理方法,包括以下步驟接收并解析來(lái)自客戶端的JavMcript請(qǐng)求,獲取所述JavMcript請(qǐng)求對(duì)應(yīng)的文 件數(shù)組,根據(jù)所述文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找所述JavMcript請(qǐng)求對(duì)應(yīng)的 JavaScript文件以及與所述JavMcript文件存在依賴關(guān)系的文件集合;如果查找到所述Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript 文件存在依賴關(guān)系的文件集合,則將所述JavMcript文件和所述文件集合發(fā)送到所述客 戶端。優(yōu)選地,所述將JavMcript文件和文件集合發(fā)送到客戶端之前,還包括對(duì)所述查找到的JavMcript文件和文件集合進(jìn)行壓縮處理。優(yōu)選地,所述的方法,還包括將JavMcript文件的發(fā)布目錄與工作目錄比較,判斷所述發(fā)布目錄是否有文件 更新,如果沒(méi)有文件更新,則將所述工作目錄中的JavMcript文件載入所述緩存中;如果有文件更新,則將所述發(fā)布目錄中的JavMcript文件載入所述緩存中,并將所述發(fā)布目錄 中的JavMcript文件復(fù)制到所述工作目錄;解析并保存所述緩存中的JavMcript文件的依賴關(guān)系信息,根據(jù)所述依賴關(guān)系 信息校驗(yàn)所述JavMcript文件依賴的文件是否存在;如果所述JavMcript文件依賴的文件不存在,則顯示異常信息,終止系統(tǒng)初始化進(jìn)程。優(yōu)選地,所述根據(jù)依賴關(guān)系信息校驗(yàn)JavMcript文件依賴的文件是否存在之后, 還包括如果所述JavMcript文件依賴的文件存在,則校驗(yàn)所述依賴關(guān)系信息是否存在 環(huán)路依賴,如果存在環(huán)路依賴,則顯示異常信息,終止系統(tǒng)初始化進(jìn)程;如果不存在環(huán)路依 賴,則壓縮所述緩存中的JavMcript文件。優(yōu)選地,在接收來(lái)自客戶端的JavMcript請(qǐng)求之后還包括根據(jù)所述JavMcript 請(qǐng)求對(duì)應(yīng)的統(tǒng)一資源定位符URL查詢緩存中是否存在與所述URL對(duì)應(yīng)的JavMcript文件, 如果所述緩存中不存在與所述URL對(duì)應(yīng)的JavMcript文件,則解析所述JavMcript請(qǐng)求, 獲取所述JavMcript請(qǐng)求對(duì)應(yīng)的文件數(shù)組。本申請(qǐng)?zhí)岢鲆环N網(wǎng)絡(luò)服務(wù)器,包括接收模塊,用于接收來(lái)自客戶端的JavMcript請(qǐng)求;解析模塊,用于解析所述接收模塊接收到的JavMcript請(qǐng)求,獲取所述 JavaScript請(qǐng)求對(duì)應(yīng)的文件數(shù)組;遍歷模塊,用于根據(jù)所述解析模塊獲取的文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查 找所述Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript文件存在依賴關(guān) 系的文件集合;發(fā)送模塊,用于在所述遍歷模塊查找到所述JavMcript請(qǐng)求對(duì)應(yīng)的JavMcript 文件以及與所述JavMcript文件存在依賴關(guān)系的文件集合時(shí),將所述JavMcript文件和 所述文件集合發(fā)送到所述客戶端。優(yōu)選地,所述發(fā)送模塊,還用于對(duì)所述查找到的JavMcript文件和文件集合進(jìn)行 壓縮處理。優(yōu)選地,所述的網(wǎng)絡(luò)服務(wù)器,還包括判斷模塊,用于將Jav必cript文件的發(fā)布目錄與工作目錄比較,判斷所述發(fā)布目 錄是否有文件更新;存儲(chǔ)模塊,用于在所述判斷模塊判斷所述發(fā)布目錄沒(méi)有文件更新時(shí),將所述工作 目錄中的JavMcript文件載入所述緩存中;在所述判斷模塊判斷所述發(fā)布目錄有文件 更新時(shí),將所述發(fā)布目錄中的JavMcript文件載入所述緩存中,并將所述發(fā)布目錄中的 JavaScript文件復(fù)制到所述工作目錄;校驗(yàn)?zāi)K,用于解析并保存所述存儲(chǔ)模塊載入到緩存中的JavMcript文件的依 賴關(guān)系信息,根據(jù)所述依賴關(guān)系信息校驗(yàn)所述JavMcript文件依賴的文件是否存在;處理模塊,用于在所述校驗(yàn)?zāi)K判斷所述JavMcript文件依賴的文件不存在時(shí), 顯示異常信息,終止系統(tǒng)初始化進(jìn)程。優(yōu)選地,所述校驗(yàn)?zāi)K,還用于在所述JavMcript文件依賴的文件存在時(shí),校驗(yàn)所述依賴關(guān)系信息是否存在環(huán)路依賴;所述處理模塊,用于在所述校驗(yàn)?zāi)K判斷所述依賴關(guān)系信息存在環(huán)路依賴時(shí),顯 示異常信息,終止系統(tǒng)初始化進(jìn)程;在所述校驗(yàn)?zāi)K判斷所述依賴關(guān)系信息不存在環(huán)路依 賴時(shí),壓縮所述緩存中的JavMcript文件。本申請(qǐng)?zhí)岢鲆环NJavMcript文件的管理系統(tǒng),包括客戶端和服務(wù)器端,所述服務(wù)器端,用于接收并解析來(lái)自所述客戶端的JavMcript請(qǐng)求,獲取所述 JavMcript請(qǐng)求對(duì)應(yīng)的文件數(shù)組,根據(jù)所述文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找所述 JavaScript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript文件存在依賴關(guān)系的文 件集合;如果查找到所述JavMcript請(qǐng)求對(duì)應(yīng)的JavMcript文件以及與所述JavMcript 文件存在依賴關(guān)系的文件集合,則將所述JavaScript文件和所述文件集合發(fā)送到所述客 戶端。所述客戶端,用于向所述服務(wù)器端發(fā)送Jav必cript請(qǐng)求,接收來(lái)自所述服務(wù)器端 的 JavaScript 文件。優(yōu)選地,所述服務(wù)器端,還用于對(duì)所述查找到的JavMcript文件和文件集合進(jìn)行 壓縮處理。本申請(qǐng)包括以下優(yōu)點(diǎn),通過(guò)獲取JavMcript文件之間的依賴關(guān)系,向客戶端發(fā)送 與Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與該Javakript文件存在依賴關(guān)系的文 件集合,從而,減少了網(wǎng)頁(yè)上資源的請(qǐng)求數(shù),達(dá)到提高頁(yè)面載入速度、加速網(wǎng)頁(yè)下載的目的, 提升了用戶的使用體驗(yàn)。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的 所有優(yōu)點(diǎn)。


為了更清楚地說(shuō)明本申請(qǐng)或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)本申請(qǐng)或現(xiàn)有技術(shù) 描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的 一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這 些附圖獲得其他的附圖。圖1為本申請(qǐng)實(shí)施例一中的一種JavMcript文件的管理方法流程圖;圖2為本申請(qǐng)實(shí)施例一中表示文件依賴關(guān)系的有向圖;圖3為本申請(qǐng)實(shí)施例二中的一種JavMcript文件的管理方法流程圖;圖4為本申請(qǐng)實(shí)施例三中的一種JavMcript文件的管理方法流程圖;圖5為本申請(qǐng)實(shí)施例四中的一種JavMcript文件的管理方法流程圖;圖6為本申請(qǐng)實(shí)施例五中的一種網(wǎng)絡(luò)服務(wù)器結(jié)構(gòu)示意圖;圖7為本申請(qǐng)實(shí)施例六中的一種網(wǎng)絡(luò)服務(wù)器結(jié)構(gòu)示意圖;圖8為本申請(qǐng)實(shí)施例七中的一種網(wǎng)絡(luò)服務(wù)器結(jié)構(gòu)示意圖;圖9為本申請(qǐng)實(shí)施例八中的一種網(wǎng)絡(luò)服務(wù)器結(jié)構(gòu)示意圖;圖10為本申請(qǐng)實(shí)施例九中的一種JavMcript文件的管理系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式本申請(qǐng)的主要思想包括,在JavMcript文件中以注釋的方式編寫與其他JavaScript文件的依賴關(guān)系,當(dāng)接收到JavMcript請(qǐng)求時(shí),服務(wù)器端查找該JavMcript 請(qǐng)求對(duì)應(yīng)的JavMcript文件以及與該JavMcript文件存在依賴關(guān)系的文件集合,將 JavaScript文件以及與該JavMcript文件存在依賴關(guān)系的文件集合進(jìn)行合并,包括去除 其中重復(fù)的JavMcript文件以及壓縮處理,并將壓縮后的文件返回給客戶端。由于大多數(shù)JavMcript的請(qǐng)求存在于網(wǎng)站的頁(yè)面中,本申請(qǐng)還提供一個(gè)頁(yè)面組 件,將相互之間沒(méi)有依賴關(guān)系的多個(gè)Jav必cript請(qǐng)求,按照約定的規(guī)范合并成一個(gè)URL,最 大程度上地減少頁(yè)面上的JavMcript請(qǐng)求數(shù)。此外,還可以將Javakript請(qǐng)求置于頁(yè)面 的底部,加速頁(yè)面的下載。下面將結(jié)合本申請(qǐng)中的附圖,對(duì)本申請(qǐng)中的技術(shù)方案進(jìn)行清楚、完整的描述,顯 然,所描述的實(shí)施例是本申請(qǐng)的一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施 例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬 于本申請(qǐng)保護(hù)的范圍。如圖1所示,為本申請(qǐng)實(shí)施例一中的一種JavMcript文件的管理方法流程圖,包 括以下步驟步驟101,接收來(lái)自客戶端的Javakript請(qǐng)求,根據(jù)該Javakript請(qǐng)求對(duì)應(yīng)的 URL (Uniform Resource Locator,統(tǒng)一資源定位符)查詢緩存中是否存在與該URL對(duì)應(yīng)的 JavaScript t^f牛。如果緩存中存在與URL對(duì)應(yīng)的JavMcript文件,則執(zhí)行步驟102 ;如果緩存中不 存在與URL對(duì)應(yīng)的Javakript文件,則執(zhí)行步驟103。具體地,服務(wù)器端的緩存中可以包含一個(gè)或多個(gè)Jav必cript文件,以及各個(gè) JavaScript文件對(duì)應(yīng)的URL。服務(wù)器端接收到來(lái)自客戶端的JavMcript請(qǐng)求,可以直接在 緩存中根據(jù)URL查找對(duì)應(yīng)的JavMcript文件。步驟102,從緩存中取出JavMcript文件,將該JavMcript文件發(fā)送到客戶端。步驟103,解析JavMcript請(qǐng)求,獲取該JavMcript請(qǐng)求對(duì)應(yīng)的文件數(shù)組。其中,文件數(shù)組Javakript請(qǐng)求對(duì)應(yīng)的一個(gè)或多個(gè)Javakript文件。步驟104,根據(jù)文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找Jav必cript請(qǐng)求對(duì)應(yīng) 的JavMcript文件以及與該JavMcript文件存在依賴關(guān)系的文件集合。如果查找到 JavaScript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與該Javakript文件存在依賴關(guān)系的文件 集合,則執(zhí)行步驟105 ;如果查找不到JavMcript請(qǐng)求對(duì)應(yīng)的JavMcript文件以及與該 JavaScript文件存在依賴關(guān)系的文件集合,則執(zhí)行步驟106。具體地,文件依賴關(guān)系結(jié)構(gòu)圖用于表示不同的JavMcript文件之間的依賴關(guān)系, 可以通過(guò)有向圖的形式表示,如圖2所示,其中,application, js依賴tool. js、util. js和 helper, js, tool, js 禾口 util. js 均依賴 common 1. js, util. js 禾口 helper, js 均依賴 commin2. js, comminl. js 禾口 commin2. js 均依賴 base, js。本申請(qǐng)實(shí)施例可以在Javakript文件中以注釋的方式編寫與其他Javakript文 件的依賴關(guān)系。例如,在a. js文件頭部定義a. js文件依賴b. js文件和c. js文件,具體的
依賴編碼如下所示
7//#import { b.js } //#import { c.js }
// js content
5/17 頁(yè)
a.js服務(wù)器端可以在JavMcript文件依賴關(guān)系有向圖中,使用廣度優(yōu)先算法遍歷出 客戶端請(qǐng)求的JavMcript文件依賴的所有JavMcript文件的集合。例如,服務(wù)器端查找 到a. js文件時(shí),可以根據(jù)a. js文件與b. js文件以及c. js文件之間的依賴關(guān)系,獲取b. js 文件和c. js文件的內(nèi)容,在a. js文件返回的內(nèi)容中加入了 b. js文件和c. js文件的內(nèi)容。步驟105,對(duì)JavMcript文件和文件集合進(jìn)行壓縮處理,并將壓縮后的 JavaScript文件發(fā)送到客戶端。具體地,客戶端通過(guò)瀏覽器訪問(wèn)網(wǎng)站頁(yè)面時(shí),大部分的響應(yīng)時(shí)間用于客戶端下載 各種頁(yè)面資源,由于網(wǎng)站越來(lái)越復(fù)雜,頁(yè)面上的各種資源也越來(lái)越多,通過(guò)對(duì)JavMcript 文件和文件集合進(jìn)行壓縮處理,可以減少頁(yè)面上的HTTP請(qǐng)求數(shù);同時(shí),由于壓縮了 JavaScript文件,也減少了頁(yè)面的容量大小。步驟106,向客戶端返回錯(cuò)誤信息。具體地,服務(wù)器端未查找到任何JavMcript文件時(shí),向客戶端的瀏覽器返回404 狀態(tài)碼,表示客戶端請(qǐng)求的資源未找到。本申請(qǐng)包括以下優(yōu)點(diǎn),通過(guò)獲取JavMcript文件之間的依賴關(guān)系,向客戶端發(fā)送 與Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與該Javakript文件存在依賴關(guān)系的文 件集合,從而,減少了網(wǎng)頁(yè)上資源的請(qǐng)求數(shù),達(dá)到提高頁(yè)面載入速度、加速網(wǎng)頁(yè)下載的目的, 提升了用戶的使用體驗(yàn)。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的 所有優(yōu)點(diǎn)。另外,在具體的實(shí)施過(guò)程中,還可以將JavMcript請(qǐng)求置于頁(yè)面底部,在頁(yè)面其 他資源下載完畢后才會(huì)下載JavMcript文件,從而加快網(wǎng)頁(yè)下載的下載速度。如圖3所示,為本申請(qǐng)實(shí)施例二中的一種JavMcript文件的管理方法流程圖,包 括以下步驟 步驟201,將JavMcript文件的發(fā)布目錄與工作目錄比較,判斷該發(fā)布目錄是否 有文件更新。如果沒(méi)有文件更新,則執(zhí)行步驟202 ;如果有文件更新,則執(zhí)行步驟203。具體地,服務(wù)器端啟動(dòng)時(shí),如果發(fā)現(xiàn)發(fā)布目錄中有JavMcript文件更新,則將發(fā) 布目錄中的JavMcript文件加載入緩存,并校驗(yàn)載入的JavMcript文件是否正確且穩(wěn) 定,如果該JavMcript文件有錯(cuò)誤或者不穩(wěn)定,則報(bào)錯(cuò);如果該JavMcript文件正確且 穩(wěn)定,則將發(fā)布目錄中的JavMcript文件復(fù)制到工作目錄,服務(wù)器端啟動(dòng)成功。在服務(wù)器 端下次啟動(dòng)時(shí),如果發(fā)布目錄下沒(méi)有更新的JavMcript文件,則服務(wù)器端將工作目錄中的 JavaScript文件復(fù)制到緩存,保證Javakript文件的正確和穩(wěn)定。服務(wù)器端運(yùn)行時(shí),如果發(fā)現(xiàn)發(fā)布目錄中有JavMcript文件更新,則將發(fā)布目錄
8中的JavMcript文件加載入緩存,并校驗(yàn)載入的JavMcript文件是否正確且穩(wěn)定,如果 該JavMcript文件有錯(cuò)誤或者不穩(wěn)定,則報(bào)錯(cuò),并提供更新之前的JavMcript文件;如果 該JavMcript文件正確且穩(wěn)定,則提供更新之后的JavMcript文件,并將發(fā)布目錄中的 JavaScript文件復(fù)制到工作目錄。步驟202,將工作目錄中的Javakript文件載入緩存中。步驟203,將發(fā)布目錄中的JavMcript文件載入緩存中,并將該發(fā)布目錄中的 JavaScript文件復(fù)制到工作目錄。步驟204,解析并保存緩存中的JavMcript文件的依賴關(guān)系信息,根據(jù)該依賴關(guān) 系信息校驗(yàn)該JavMcript文件依賴的文件是否存在。如果Javakript文件依賴的文件不存在,則執(zhí)行步驟205 ;如果Javakript文件 依賴的文件存在,則執(zhí)行步驟206。具體地,服務(wù)器端保存每個(gè)JavMcript文件的依賴關(guān)系信息,保存的數(shù)據(jù)結(jié) 構(gòu)可以為有向圖,該有向圖可以使用鄰接矩陣表示。有向圖可參照?qǐng)D2所示,其中, application, js 依賴 tool. js、util. js 禾口 helper, js, tool, js 禾口 util. js 均依賴 commonl. js, util. js 禾口 helper, js 均依賴 commin2. js, comminl. js 禾口 commin2. js 均依賴 base, js。本申請(qǐng)實(shí)施例可以在Javakript文件中以注釋的方式編寫與其他Javakript文 件的依賴關(guān)系。例如,在a. js文件頭部定義a. js文件依賴b. js文件和c. js文件,具體的
依賴編碼如下所示
//#import {b.js} //#import { c.js}
// js content
a.js 服務(wù)器端可以在JavMcript文件依賴關(guān)系有向圖中,使用廣度優(yōu)先算法遍歷出 客戶端請(qǐng)求的JavMcript文件依賴的所有JavMcript文件的集合。例如,服務(wù)器端查找 到a. js文件時(shí),可以根據(jù)a. js文件與b. js文件以及c. js文件之間的依賴關(guān)系,獲取b. js 文件和c. js文件的內(nèi)容,在a. js文件返回的內(nèi)容中加入了 b. js文件和c. js文件的內(nèi)容。步驟205,顯示異常信息,終止系統(tǒng)初始化進(jìn)程。具體地,當(dāng)JavMcript文件依賴的文件不存在時(shí),系統(tǒng)馬上拋出異常,并終止初 始化進(jìn)程。步驟206,校驗(yàn)依賴關(guān)系信息是否存在環(huán)路依賴,如果存在環(huán)路依賴,則執(zhí)行步驟 205 ;如果不存在環(huán)路依賴,則執(zhí)行步驟207。具體地,可以使用回溯法校驗(yàn)JavMcript文件的依賴關(guān)系信息中是否存在環(huán)路 依賴。例如,如果在a. js文件頭部定義a. js文件依賴b. js文件,在b. js文件頭部定義 b. js文件依賴a. js文件,則a. js文件與b. js文件之間存在環(huán)路依賴。
步驟207,壓縮緩存中的Javakript文件。具體地,服務(wù)器端可以刪除JavMcript文件中的注釋、空行和空格,將 JavaScript文件中的全部代碼調(diào)整為一行,從而實(shí)現(xiàn)對(duì)JavMcript文件的壓縮。本申請(qǐng)包括以下優(yōu)點(diǎn),通過(guò)獲取JavMcript文件之間的依賴關(guān)系,向客戶端發(fā)送 與Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與該Javakript文件存在依賴關(guān)系的文 件集合,從而,減少了網(wǎng)頁(yè)上資源的請(qǐng)求數(shù),達(dá)到提高頁(yè)面載入速度、加速網(wǎng)頁(yè)下載的目的, 提升了用戶的使用體驗(yàn)。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的 所有優(yōu)點(diǎn)。另外,在具體的實(shí)施過(guò)程中,還可以將JavMcript請(qǐng)求置于頁(yè)面底部,在頁(yè)面其 他資源下載完畢后才會(huì)下載JavMcript文件,從而加快網(wǎng)頁(yè)下載的下載速度。如圖4所示,為本申請(qǐng)實(shí)施例三中的一種JavMcript文件的管理方法流程圖,包 括以下步驟步驟301,服務(wù)器啟動(dòng),檢測(cè)發(fā)布目錄中是否有JavMcript文件更新;如果發(fā)布目 錄中有JavMcript文件更新,則執(zhí)行步驟302 ;如果發(fā)布目錄中沒(méi)有JavMcript文件更 新,則執(zhí)行步驟305。步驟302,服務(wù)器將發(fā)布目錄中的JavMcript文件加載入緩存,并校驗(yàn)載入的 JavaScript文件是否正確且穩(wěn)定;如果載入的JavMcript文件不正確或者不穩(wěn)定,則執(zhí)行 步驟303 ;如果載入的JavMcript文件正確且穩(wěn)定,則執(zhí)行步驟304。步驟303,服務(wù)器報(bào)錯(cuò)。步驟304,服務(wù)器將發(fā)布目錄中的JavMcript文件復(fù)制到工作目錄,啟動(dòng)成功。步驟305,服務(wù)器將工作目錄中的Javakript文件載入緩存中。步驟306,服務(wù)器解析并保存緩存中的JavMcript文件的依賴關(guān)系信息,根據(jù)該 依賴關(guān)系信息校驗(yàn)該JavMcript文件依賴的文件是否存在。如果Javakript文件依賴的文件不存在,則執(zhí)行步驟307 ;如果Javakript文件 依賴的文件存在,則執(zhí)行步驟308。具體地,服務(wù)器端保存每個(gè)JavMcript文件的依賴關(guān)系信息,保存的數(shù)據(jù)結(jié) 構(gòu)可以為有向圖,該有向圖可以使用鄰接矩陣表示。有向圖可參照?qǐng)D2所示,其中, application, js 依賴 tool. js、util. is 禾口 helper, js, tool, js 禾口 util. js 均依賴 commonl. js, util. js 禾口 helper, js 均依賴 commin2. js, comminl. js 禾口 commin2. js 均依賴 base, js。本申請(qǐng)實(shí)施例可以在Javakript文件中以注釋的方式編寫與其他Javakript文 件的依賴關(guān)系。例如,在a. js文件頭部定義a. js文件依賴b. js文件和c. js文件,具體的
依賴編碼如下所示//#import {b.js} //#import { c.js }
//js content
a.js 服務(wù)器端可以在JavMcript文件依賴關(guān)系有向圖中,使用廣度優(yōu)先算法遍歷出 客戶端請(qǐng)求的JavMcript文件依賴的所有JavMcript文件的集合。例如,服務(wù)器端查找 到a. js文件時(shí),可以根據(jù)a. js文件與b. js文件以及c. js文件之間的依賴關(guān)系,獲取b. js 文件和c. js文件的內(nèi)容,在a. js文件返回的內(nèi)容中加入了 b. js文件和c. js文件的內(nèi)容。步驟307,服務(wù)器顯示異常信息,終止系統(tǒng)初始化進(jìn)程。具體地,當(dāng)JavMcript文件依賴的文件不存在時(shí),系統(tǒng)馬上拋出異常,并終止初 始化進(jìn)程。步驟308,服務(wù)器校驗(yàn)依賴關(guān)系信息是否存在環(huán)路依賴,如果存在環(huán)路依賴,則執(zhí) 行步驟307 ;如果不存在環(huán)路依賴,則執(zhí)行步驟309。具體地,可以使用回溯法校驗(yàn)Jav必cript文件的依賴關(guān)系信息中是否存在環(huán)路 依賴。例如,如果在a. js文件頭部定義a. js文件依賴b. js文件,在b. js文件頭部定義 b. js文件依賴a. js文件,則a. js文件與b. js文件之間存在環(huán)路依賴。步驟309,服務(wù)器壓縮緩存中的Javakript文件。具體地,服務(wù)器端可以刪除JavMcript文件中的注釋、空行和空格,將 JavaScript文件中的全部代碼調(diào)整為一行,從而實(shí)現(xiàn)對(duì)JavMcript文件的壓縮。本申請(qǐng)包括以下優(yōu)點(diǎn),通過(guò)獲取JavMcript文件之間的依賴關(guān)系,向客戶端發(fā)送 與Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與該Javakript文件存在依賴關(guān)系的文 件集合,從而,減少了網(wǎng)頁(yè)上資源的請(qǐng)求數(shù),達(dá)到提高頁(yè)面載入速度、加速網(wǎng)頁(yè)下載的目的, 提升了用戶的使用體驗(yàn)。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的 所有優(yōu)點(diǎn)。另外,在具體的實(shí)施過(guò)程中,還可以將JavMcript請(qǐng)求置于頁(yè)面底部,在頁(yè)面其 他資源下載完畢后才會(huì)下載JavMcript文件,從而加快網(wǎng)頁(yè)下載的下載速度。如圖5所示,為本申請(qǐng)實(shí)施例四中的一種JavMcript文件的管理方法流程圖,包 括以下步驟步驟401,服務(wù)器運(yùn)行時(shí),檢測(cè)發(fā)布目錄中是否有JavMcript文件更新;如果發(fā)布 目錄中有JavMcript文件更新,則執(zhí)行步驟402 ;如果發(fā)布目錄中沒(méi)有JavMcript文件更 新,則結(jié)束流程。步驟402,服務(wù)器將發(fā)布目錄中的JavMcript文件加載入緩存,并校驗(yàn)載入的 JavaScript文件是否正確且穩(wěn)定;如果載入的JavMcript文件不正確或者不穩(wěn)定,則執(zhí)行 步驟403 ;如果載入的JavMcript文件正確且穩(wěn)定,則執(zhí)行步驟404。步驟403,服務(wù)器報(bào)錯(cuò),提供更新之前的JavMcript文件。
步驟404,服務(wù)器提供更新之后的JavMcript文件,并將該發(fā)布目錄中的 JavaScript文件復(fù)制到工作目錄。步驟405,服務(wù)器解析并保存緩存中的JavMcript文件的依賴關(guān)系信息,根據(jù)該 依賴關(guān)系信息校驗(yàn)該JavMcript文件依賴的文件是否存在。如果Javakript文件依賴的文件不存在,則執(zhí)行步驟406 ;如果Javakript文件 依賴的文件存在,則執(zhí)行步驟407。具體地,服務(wù)器端保存每個(gè)JavMcript文件的依賴關(guān)系信息,保存的數(shù)據(jù)結(jié) 構(gòu)可以為有向圖,該有向圖可以使用鄰接矩陣表示。有向圖可參照?qǐng)D2所示,其中, application, js 依賴 tool. js、util. js 和 helper, js, tool, js 和 util. js 均依賴 commonl. js, util. js 和 helper, js 均依賴 commin2. js, comminl. js 和 commin2. js 均依賴 base, js。本申請(qǐng)實(shí)施例可以在Javakript文件中以注釋的方式編寫與其他Javakript文 件的依賴關(guān)系。例如,在a. js文件頭部定義a. js文件依賴b. js文件和c. js文件,具體的
依賴編碼如下所示
//#import{b.js}
//#import{ c.js }
// js content
a.js服務(wù)器端可以在JavMcript文件依賴關(guān)系有向圖中,使用廣度優(yōu)先算法遍歷出 客戶端請(qǐng)求的JavMcript文件依賴的所有JavMcript文件的集合。例如,服務(wù)器端查找 到a. js文件時(shí),可以根據(jù)a. js文件與b. js文件以及c. js文件之間的依賴關(guān)系,獲取b. js 文件和c. js文件的內(nèi)容,在a. js文件返回的內(nèi)容中加入了 b. js文件和c. js文件的內(nèi)容。步驟406,服務(wù)器顯示異常信息,終止系統(tǒng)初始化進(jìn)程。具體地,當(dāng)JavMcript文件依賴的文件不存在時(shí),系統(tǒng)馬上拋出異常,并終止初 始化進(jìn)程。步驟407,服務(wù)器校驗(yàn)依賴關(guān)系信息是否存在環(huán)路依賴,如果存在環(huán)路依賴,則執(zhí) 行步驟406 ;如果不存在環(huán)路依賴,則執(zhí)行步驟408。具體地,可以使用回溯法校驗(yàn)JavMcript文件的依賴關(guān)系信息中是否存在環(huán)路 依賴。例如,如果在a. js文件頭部定義a. js文件依賴b. js文件,在b. js文件頭部定義 b. js文件依賴a. js文件,則a. js文件與b. js文件之間存在環(huán)路依賴。步驟408,服務(wù)器壓縮緩存中的Javakript文件。具體地,服務(wù)器端可以刪除JavMcript文件中的注釋、空行和空格,將 JavaScript文件中的全部代碼調(diào)整為一行,從而實(shí)現(xiàn)對(duì)JavMcript文件的壓縮。本申請(qǐng)包括以下優(yōu)點(diǎn),通過(guò)獲取JavMcript文件之間的依賴關(guān)系,向客戶端發(fā)送 與Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與該Javakript文件存在依賴關(guān)系的文件集合,從而,減少了網(wǎng)頁(yè)上資源的請(qǐng)求數(shù),達(dá)到提高頁(yè)面載入速度、加速網(wǎng)頁(yè)下載的目的, 提升了用戶的使用體驗(yàn)。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的 所有優(yōu)點(diǎn)。另外,在具體的實(shí)施過(guò)程中,還可以將JavMcript請(qǐng)求置于頁(yè)面底部,在頁(yè)面其 他資源下載完畢后才會(huì)下載JavMcript文件,從而加快網(wǎng)頁(yè)下載的下載速度。本申請(qǐng)上述實(shí)施例提供了 JavMcript文件的管理方法和應(yīng)用場(chǎng)景,相應(yīng)地,本申 請(qǐng)還通過(guò)以下實(shí)施例提供了應(yīng)用上述方法的裝置和系統(tǒng)。如圖6所示,為本申請(qǐng)實(shí)施例五中的一種網(wǎng)絡(luò)服務(wù)器結(jié)構(gòu)示意圖,包括接收模塊510,用于接收來(lái)自客戶端的JavMcript請(qǐng)求。解析模塊520,用于解析所述接收模塊510接收到的JavMcript請(qǐng)求,獲取所述 JavaScript請(qǐng)求對(duì)應(yīng)的文件數(shù)組。其中,文件數(shù)組Javakript請(qǐng)求對(duì)應(yīng)的一個(gè)或多個(gè)Javakript文件。遍歷模塊530,用于根據(jù)所述解析模塊520獲取的文件數(shù)組遍歷文件依賴關(guān)系結(jié) 構(gòu)圖,查找所述Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript文件存在 依賴關(guān)系的文件集合。具體地,文件依賴關(guān)系結(jié)構(gòu)圖用于表示不同的JavMcript文件之間的依賴關(guān)系, 可以通過(guò)有向圖的形式表示,如圖2所示,其中,application, js依賴tool. js、util. js和 helper, js, tool, js 禾口 util. js 均依賴 common 1. js, util. js 禾口 helper, js 均依賴 commin2. js, comminl. js 禾口 commin2. js 均依賴 base, js。本申請(qǐng)實(shí)施例可以在Javakript文件中以注釋的方式編寫與其他Javakript文 件的依賴關(guān)系。例如,在a. js文件頭部定義a. js文件依賴b. js文件和c. js文件,具體的
依賴編碼如下所示
權(quán)利要求
1.一種JavMcript文件的管理方法,其特征在于,包括以下步驟接收并解析來(lái)自客戶端的JavMcript請(qǐng)求,獲取所述JavMcript請(qǐng)求對(duì)應(yīng)的文 件數(shù)組,根據(jù)所述文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找所述JavMcript請(qǐng)求對(duì)應(yīng)的 JavaScript文件以及與所述JavMcript文件存在依賴關(guān)系的文件集合;如果查找到所述Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript文 件存在依賴關(guān)系的文件集合,則將所述JavMcript文件和所述文件集合發(fā)送到所述客戶 端。
2.如權(quán)利要求1所述的方法,其特征在于,所述將JavMcript文件和文件集合發(fā)送到 客戶端之前,還包括對(duì)所述查找到的JavMcript文件和文件集合進(jìn)行壓縮處理。
3.如權(quán)利要求1所述的方法,其特征在于,還包括將JavMcript文件的發(fā)布目錄與工作目錄比較,判斷所述發(fā)布目錄是否有文件更新, 如果沒(méi)有文件更新,則將所述工作目錄中的JavMcript文件載入所述緩存中;如果有文 件更新,則將所述發(fā)布目錄中的JavMcript文件載入所述緩存中,并將所述發(fā)布目錄中的 JavaScript文件復(fù)制到所述工作目錄;解析并保存所述緩存中的JavMcript文件的依賴關(guān)系信息,根據(jù)所述依賴關(guān)系信息 校驗(yàn)所述JavMcript文件依賴的文件是否存在;如果所述JavMcript文件依賴的文件不存在,則顯示異常信息,終止系統(tǒng)初始化進(jìn)程。
4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)依賴關(guān)系信息校驗(yàn)JavMcript文 件依賴的文件是否存在之后,還包括如果所述JavMcript文件依賴的文件存在,則校驗(yàn)所述依賴關(guān)系信息是否存在環(huán)路 依賴,如果存在環(huán)路依賴,則顯示異常信息,終止系統(tǒng)初始化進(jìn)程;如果不存在環(huán)路依賴,則 壓縮所述緩存中的JavMcript文件。
5.如權(quán)利要求1所述的方法,其特征在于,在接收來(lái)自客戶端的JavMcript請(qǐng)求之后 還包括根據(jù)所述Jav必cript請(qǐng)求對(duì)應(yīng)的統(tǒng)一資源定位符URL查詢緩存中是否存在與所述 URL對(duì)應(yīng)的Javakript文件,如果所述緩存中不存在與所述URL對(duì)應(yīng)的Javakript文件, 則解析所述JavMcript請(qǐng)求,獲取所述JavMcript請(qǐng)求對(duì)應(yīng)的文件數(shù)組。
6.一種網(wǎng)絡(luò)服務(wù)器,其特征在于,包括接收模塊,用于接收來(lái)自客戶端的JavMcript請(qǐng)求;解析模塊,用于解析所述接收模塊接收到的JavMcript請(qǐng)求,獲取所述JavMcript請(qǐng) 求對(duì)應(yīng)的文件數(shù)組;遍歷模塊,用于根據(jù)所述解析模塊獲取的文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找所 述Javakript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript文件存在依賴關(guān)系的 文件集合;發(fā)送模塊,用于在所述遍歷模塊查找到所述JavMcript請(qǐng)求對(duì)應(yīng)的JavMcript文件 以及與所述JavMcript文件存在依賴關(guān)系的文件集合時(shí),將所述JavMcript文件和所述 文件集合發(fā)送到所述客戶端。
7.如權(quán)利要求6所述的網(wǎng)絡(luò)服務(wù)器,其特征在于,所述發(fā)送模塊,還用于對(duì)所述查找到的JavMcript文件和文件集合進(jìn)行壓縮處理。
8.如權(quán)利要求6所述的網(wǎng)絡(luò)服務(wù)器,其特征在于,還包括判斷模塊,用于將JavMcript文件的發(fā)布目錄與工作目錄比較,判斷所述發(fā)布目錄是 否有文件更新;存儲(chǔ)模塊,用于在所述判斷模塊判斷所述發(fā)布目錄沒(méi)有文件更新時(shí),將所述工作目 錄中的JavMcript文件載入所述緩存中;在所述判斷模塊判斷所述發(fā)布目錄有文件更 新時(shí),將所述發(fā)布目錄中的JavMcript文件載入所述緩存中,并將所述發(fā)布目錄中的 JavaScript文件復(fù)制到所述工作目錄;校驗(yàn)?zāi)K,用于解析并保存所述存儲(chǔ)模塊載入到緩存中的JavMcript文件的依賴關(guān) 系信息,根據(jù)所述依賴關(guān)系信息校驗(yàn)所述JavMcript文件依賴的文件是否存在;處理模塊,用于在所述校驗(yàn)?zāi)K判斷所述JavMcript文件依賴的文件不存在時(shí),顯示 異常信息,終止系統(tǒng)初始化進(jìn)程。
9.如權(quán)利要求8所述的網(wǎng)絡(luò)服務(wù)器,其特征在于,所述校驗(yàn)?zāi)K,還用于在所述JavMcript文件依賴的文件存在時(shí),校驗(yàn)所述依賴關(guān)系 信息是否存在環(huán)路依賴;所述處理模塊,用于在所述校驗(yàn)?zāi)K判斷所述依賴關(guān)系信息存在環(huán)路依賴時(shí),顯示異 常信息,終止系統(tǒng)初始化進(jìn)程;在所述校驗(yàn)?zāi)K判斷所述依賴關(guān)系信息不存在環(huán)路依賴時(shí), 壓縮所述緩存中的JavMcript文件。
10.一種JavMcript文件的管理系統(tǒng),包括客戶端和服務(wù)器端,其特征在于,所述服務(wù)器端,用于接收并解析來(lái)自所述客戶端的JavMcript請(qǐng)求,獲取所述 JavMcript請(qǐng)求對(duì)應(yīng)的文件數(shù)組,根據(jù)所述文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找所述 JavaScript請(qǐng)求對(duì)應(yīng)的Javakript文件以及與所述Javakript文件存在依賴關(guān)系的文 件集合;如果查找到所述JavMcript請(qǐng)求對(duì)應(yīng)的JavMcript文件以及與所述JavMcript 文件存在依賴關(guān)系的文件集合,則將所述JavMcript文件和所述文件集合發(fā)送到所述客 戶端。所述客戶端,用于向所述服務(wù)器端發(fā)送JavMcript請(qǐng)求,接收來(lái)自所述服務(wù)器端的 JavaScript
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述服務(wù)器端,還用于對(duì)所述查找到的JavMcript文件和文件集合進(jìn)行壓縮處理。
全文摘要
本發(fā)明公開(kāi)了一種JavaScript文件的管理方法、裝置和系統(tǒng),該方法包括以下步驟接收并解析來(lái)自客戶端的JavaScript請(qǐng)求,獲取所述JavaScript請(qǐng)求對(duì)應(yīng)的文件數(shù)組,根據(jù)所述文件數(shù)組遍歷文件依賴關(guān)系結(jié)構(gòu)圖,查找所述JavaScript請(qǐng)求對(duì)應(yīng)的JavaScript文件以及與所述JavaScript文件存在依賴關(guān)系的文件集合;如果查找到所述JavaScript請(qǐng)求對(duì)應(yīng)的JavaScript文件以及與所述JavaScript文件存在依賴關(guān)系的文件集合,則將所述JavaScript文件和所述文件集合發(fā)送到所述客戶端。本發(fā)明提高了頁(yè)面載入的速度、加快了網(wǎng)頁(yè)下載的速度。
文檔編號(hào)G06F17/30GK102081633SQ200910249840
公開(kāi)日2011年6月1日 申請(qǐng)日期2009年11月27日 優(yōu)先權(quán)日2009年11月27日
發(fā)明者姚明, 潘磊, 陳超 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
漳州市| 镇赉县| 墨玉县| 靖西县| 荔浦县| 惠东县| 嘉兴市| 八宿县| 隆子县| 项城市| 明水县| 汾阳市| 汽车| 固镇县| 隆林| 永平县| 纳雍县| 白山市| 瓮安县| 威宁| 台东县| 民县| 宜宾县| 山西省| 康平县| 昌邑市| 海口市| 靖西县| 和平区| 琼结县| 聊城市| 买车| 渑池县| 斗六市| 柏乡县| 巴中市| 舟曲县| 布拖县| 盐津县| 洛宁县| 长岭县|