本發(fā)明涉及瀏覽器應(yīng)用領(lǐng)域,具體涉及一種使用注解方式加載代碼文件的方法和一種使用注解方式加載代碼文件的系統(tǒng)。
背景技術(shù):
瀏覽器的網(wǎng)頁(yè)中經(jīng)常需要一些代碼文件,如一些用來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)動(dòng)態(tài)等其它功能的javascript文件,以及一些用來(lái)美化網(wǎng)頁(yè)樣式的css文件。通常,瀏覽器在解析javascript文件和css文件時(shí),依賴(lài)的是網(wǎng)頁(yè)頁(yè)面中的<script>和<link>標(biāo)記,<script>用來(lái)告知瀏覽器需要加載javascript文件,<link>用來(lái)告知瀏覽器需要加載css文件。
但隨著網(wǎng)頁(yè)多元化的發(fā)展,網(wǎng)頁(yè)的復(fù)雜程度也越來(lái)越高,需要使用大量的javascript文件和css文件,且各個(gè)javascript文件間或各個(gè)css文件間的功能相互交叉,如一個(gè)javascript文件中某個(gè)功能的實(shí)現(xiàn)還需依賴(lài)另一個(gè)javascript文件中的某個(gè)功能,此時(shí)必須保證被依賴(lài)的那個(gè)javascript文件被加載,才能實(shí)現(xiàn)網(wǎng)頁(yè)的某個(gè)功能,隨著各個(gè)javascript文件或css文件間關(guān)系的錯(cuò)綜復(fù)雜,采用此種解析方式,瀏覽器的崩潰概率也大大增加。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種使用注解方式加載代碼文件的方法和一種使用注解方式加載代碼文件的系統(tǒng),能夠有效提高瀏覽器加載網(wǎng)頁(yè)的速度。
為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是,包括:
步驟S1:下載代碼文件至瀏覽器中并執(zhí)行,其中,與其它代碼文件相關(guān)聯(lián)的代碼文件中定義有注解,所述注解中含有指向相關(guān)聯(lián)代碼文件的下載地址;
步驟S2:判斷代碼文件中是否定義有注解;
步驟S3:若是,則下載注解所指向的代碼文件至瀏覽器中并執(zhí)行,然后返回步驟S2,若否,則結(jié)束。
在上述技術(shù)方案的基礎(chǔ)上,所述代碼文件包括javascript文件和css文件。
在上述技術(shù)方案的基礎(chǔ)上,所述注解包括注解所指向的代碼文件的下載方式。
在上述技術(shù)方案的基礎(chǔ)上,所述下載方式包括同步下載和異步下載。
在上述技術(shù)方案的基礎(chǔ)上,步驟S1中,代碼文件以同步下載方式下載至瀏覽器中。
在上述技術(shù)方案的基礎(chǔ)上,步驟S3中,在下載注解所指向的代碼文件前,對(duì)注解中代碼文件的下載方式進(jìn)行判斷:
若為同步下載,則注解所指向的代碼文件采用同步下載的方式下載;
若為異步下載,則注解所指向的代碼文件采用異步下載的方式下載。
本發(fā)明還公開(kāi)了一種使用注解方式加載代碼文件的系統(tǒng),包括:
加載模塊,其用于下載代碼文件至瀏覽器;
判斷模塊,其用于判斷代碼文件中是否定義有注解,若有,則所述判斷模塊還用于控制加載模塊下載注解所指向的代碼文件至瀏覽器中。
在上述技術(shù)方案的基礎(chǔ)上,所述代碼文件包括javascript文件和css文件。
在上述技術(shù)方案的基礎(chǔ)上,所述注解包括代碼文件的下載方式和下載地址,所述下載方式包括同步下載和異步下載。
在上述技術(shù)方案的基礎(chǔ)上,所述判斷模塊還用于判斷注解中代碼文件的下載方式,若為同步下載,則采用同步下載的方式下載注解所指向的代碼文件,若為異步下載,則采用異步下載方式的下載注解所指向的代碼文件。
與現(xiàn)有技術(shù)相比,本發(fā)明一種使用注解方式加載代碼文件的方法的優(yōu)點(diǎn)在于:方法采用注解的方式管理代碼文件,通過(guò)在代碼文件中定義的注解,用以表明當(dāng)當(dāng)前代碼文件在執(zhí)行時(shí),告知瀏覽器需要加載其它的代碼文件來(lái)配合當(dāng)前代碼來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)態(tài)等其它功能,極大地減少了網(wǎng)頁(yè)中的<script>標(biāo)記和<link>標(biāo)記,各個(gè)代碼文件之間的關(guān)系邏輯也較為清楚,提高了瀏覽器加載網(wǎng)頁(yè)的速度,且降低了后期對(duì)網(wǎng)頁(yè)的維護(hù)難度,降低了開(kāi)發(fā)人員的工作量。
本發(fā)明的一種使用注解方式加載代碼文件的方法的系統(tǒng)的優(yōu)點(diǎn)在于:通過(guò)注解的方式管理代碼文件,判斷根據(jù)代碼文件中的注解,加載注解所指向的代碼文件,有效提高瀏覽器加載網(wǎng)頁(yè)的速度。
附圖說(shuō)明
圖1為本發(fā)明一種使用注解方式加載代碼文件的方法的流程圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
參見(jiàn)圖1所示,本發(fā)明提供一種使用注解方式加載代碼文件的方法,用于通過(guò)瀏覽器瀏覽網(wǎng)頁(yè)時(shí),瀏覽器加載網(wǎng)頁(yè)附帶的功能性的代碼文件,本實(shí)施例中,代碼文件包括javascript文件和css文件,javascript文件用于實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)態(tài)等功能,css文件用以實(shí)現(xiàn)美化網(wǎng)站的樣式等功能,當(dāng)瀏覽器下載javascript文件和css文件并解析后,便能實(shí)現(xiàn)網(wǎng)頁(yè)的某些特定展示功能。本發(fā)明的方法包括:
步驟S1:下載代碼文件至瀏覽器中并執(zhí)行,其中,與其它代碼文件相關(guān)聯(lián)的代碼文件中定義有注解,注解中含有指向相關(guān)聯(lián)代碼文件的下載地址,具體的,若某一代碼文件功能的實(shí)現(xiàn)需要依賴(lài)其它代碼文件,則該代碼文件與其它代碼文件相關(guān)聯(lián),則該代碼文件中定義有注解。代碼文件下載到瀏覽器中的方式包括同步下載和異步下載,同步下載為當(dāng)瀏覽器在進(jìn)行文件的下載操作時(shí),此時(shí)將瀏覽器中的其它程序暫停,當(dāng)文件下載完畢后,其它程序再繼續(xù)執(zhí)行;異步下載為當(dāng)瀏覽器在進(jìn)行文件下載操作的同時(shí),瀏覽器中的其它程序同時(shí)也能夠繼續(xù)執(zhí)行。該步驟中,使用同步下載的方式下載代碼文件至瀏覽器中。
瀏覽器在加載網(wǎng)頁(yè)時(shí),不被其它javascript所依賴(lài)的javascript文件均對(duì)應(yīng)有一<script>標(biāo)記,<script>標(biāo)記用于告知瀏覽器需要下載javascript文件,不被其它c(diǎn)ss文件所依賴(lài)的css文件均對(duì)應(yīng)有一<link>標(biāo)記,<link>標(biāo)記用以告知瀏覽器需要下載css文件。
<script>標(biāo)記完整的形式為<script src=”文件地址”>,src=”文件地址”表示該<script>標(biāo)記所對(duì)應(yīng)的javascript文件所在的地址,當(dāng)瀏覽器在解析網(wǎng)頁(yè),識(shí)別到網(wǎng)頁(yè)所攜帶的<script>標(biāo)記時(shí),便會(huì)匹配該標(biāo)記上的src,從而得到j(luò)avascript文件的地址,從而將javascript文件下載到瀏覽器中。
<link>標(biāo)記完整的形式為<link href=”文件地址”>,href=”文件地址”表示該<link>標(biāo)記所對(duì)應(yīng)的css文件所在的地址,當(dāng)瀏覽器在解析網(wǎng)頁(yè),識(shí)別到網(wǎng)頁(yè)所攜帶的<link>標(biāo)記時(shí),便會(huì)匹配該標(biāo)記上的href,從而得到j(luò)css文件的地址,從而將css文件下載到瀏覽器中。
步驟S2:判斷代碼文件中是否定義有注解。
注解包括注解所指向的代碼文件的下載方式和下載地址,具體的,注解用于對(duì)javascript文件或css文件進(jìn)行管理,注解一般出現(xiàn)在javascript文件或css文件的開(kāi)頭部分,注解的組成包括:一個(gè)必須的的”@”符號(hào),一個(gè)必須的注解名稱(chēng),一個(gè)可選的其他信息。格式形如:
/**
*@dependson javascript或css文件地址1
*@async
*@dependson javascript或css文件地址2
*@dependson javascript或css文件地址3
*/
*@async用來(lái)表示下方的@dependson所指向的代碼文件需采用異步下載的方式下載,若沒(méi)有@async,則下方的@dependson所指向的代碼文件需要采用同步下載的方式下載。
步驟S3:若代碼文件中沒(méi)有定義注解,則結(jié)束;若代碼文件中定義有注解,則下載注解所指向的代碼文件至瀏覽器中并執(zhí)行,然后返回步驟S2,且在下載注解所指向的代碼文件前,還需對(duì)注解中代碼文件的下載方式進(jìn)行判斷,若為同步下載,則注解所指向的代碼文件采用同步下載的方式下載,若為異步下載,則注解所指向的代碼文件采用異步下載的方式下載。
具體的,若代碼文件中沒(méi)有定義注解,則結(jié)束,即代碼文件加載到瀏覽器中,在執(zhí)行的過(guò)程中沒(méi)有發(fā)現(xiàn)代碼文件中定義有注解,則當(dāng)前代碼文件執(zhí)行完后結(jié)束對(duì)代碼文件的操作;若代碼文件加載到瀏覽器中,在執(zhí)行的過(guò)程中發(fā)現(xiàn)代碼文件中定義有注解,則對(duì)注解進(jìn)行解析以得到注解信息,若在解析得到的注解信息中發(fā)現(xiàn)@async,則該注解信息中@async下方的@dependson所指向的依賴(lài)文件,即注解所指向的代碼文件需要以異步下載的下載方式下載到瀏覽器中,@dependson的組成為:@+注解名+其他信息,通過(guò)對(duì)@dependson進(jìn)行字符串的截取,得到代碼文件的下載地址,然后瀏覽器讀取該下載地址,以異步下載的方式下載代碼文件至瀏覽器中并執(zhí)行,然后轉(zhuǎn)到步驟S2,進(jìn)行循環(huán),直至代碼文件中不再發(fā)現(xiàn)定義有注解,若在解析得到的注解信息中未發(fā)現(xiàn)@async,則該注解信息下方的@dependson所指向的依賴(lài)文件,即注解所指向的代碼文件需要以同步下載的下載方式下載到瀏覽器中并執(zhí)行,然后轉(zhuǎn)到步驟S2,進(jìn)行循環(huán),直至代碼文件中不再發(fā)現(xiàn)定義有注解。
本方法采用注解的方式管理代碼文件,通過(guò)在代碼文件中定義的注解,用以表明當(dāng)當(dāng)前代碼文件在執(zhí)行時(shí),告知瀏覽器需要加載其它的代碼文件來(lái)配合當(dāng)前代碼來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)的某些功能。若當(dāng)前代碼在執(zhí)行時(shí),發(fā)現(xiàn)代碼文件中定義有注解,則加載注解所指向的代碼文件至瀏覽器中執(zhí)行,且判斷注解所指向的代碼文件中是否含有注解,若有,則繼續(xù)下載對(duì)應(yīng)的代碼文件執(zhí)行并判斷,依次循環(huán),直至代碼文件不再含有注解,則整個(gè)代碼文件的執(zhí)行過(guò)程結(jié)束。
采用注解的方式管理代碼文件的方式,不被其它代碼文件所依賴(lài)的代碼文件,即無(wú)需配合其它代碼文件實(shí)現(xiàn)某些功能的代碼文件對(duì)應(yīng)有<script>標(biāo)記或<link>標(biāo)記,而相互間配合實(shí)現(xiàn)某些功能的代碼文件,后者代碼文件是不含有<script>標(biāo)記或<link>標(biāo)記,通過(guò)前者代碼文件的注解來(lái)告知瀏覽器需要記載的后者代碼文件,從而極大地減少了網(wǎng)頁(yè)中的<script>標(biāo)記和<link>標(biāo)記,且各個(gè)相關(guān)聯(lián)的代碼文件之間的邏輯關(guān)系也較為清楚,提高了瀏覽器加載網(wǎng)頁(yè)的速度,且降低了后期對(duì)網(wǎng)頁(yè)的維護(hù)難度,降低了開(kāi)發(fā)人員的工作量。
本發(fā)明還包括一種采用上述方法的使用注解方式加載代碼文件的系統(tǒng),該系統(tǒng)包括加載模塊和判斷模塊。
加載模塊用于下載代碼文件至瀏覽器;判斷模塊用于判斷代碼文件中是否定義有注解,若有,則判斷模塊還用于控制加載模塊下載注解所指向的代碼文件至瀏覽器中。
代碼文件包括javascript文件和css文件,注解包括代碼文件的下載方式和下載地址,下載方式包括同步下載和異步下載,判斷模塊還用于判斷注解中代碼文件的下載方式,若為同步下載,則采用同步下載的方式下載注解所指向的代碼文件,若為異步下載,則采用異步下載方式的下載注解所指向的代碼文件。
通過(guò)注解的方式管理代碼文件,判斷根據(jù)代碼文件中的注解,加載注解所指向的代碼文件,有效提高瀏覽器加載網(wǎng)頁(yè)的速度。
本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。