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

一種級(jí)聯(lián)樣式表優(yōu)化方法和裝置制造方法

文檔序號(hào):6516502閱讀:172來(lái)源:國(guó)知局
一種級(jí)聯(lián)樣式表優(yōu)化方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種級(jí)聯(lián)樣式表優(yōu)化方法和裝置,包括:對(duì)網(wǎng)頁(yè)HTML文檔中引用的級(jí)聯(lián)樣式表CSS的文本進(jìn)行解析;刪除CSS的文本中的冗余信息、合并重復(fù)的CSS屬性賦值、并壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度;將網(wǎng)頁(yè)HTML文檔中引用的CSS的選擇器名稱(chēng)替換為壓縮后的CSS選擇器名稱(chēng)。本發(fā)明的級(jí)聯(lián)樣式表優(yōu)化方法和裝置,能夠去除CSS的文本中的冗余信息,將CSS的屬性、選擇器合并,壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度,并對(duì)HTML文件中的CSS的選擇器名稱(chēng)進(jìn)行壓縮,可以減小CSS的文本大小,提高頁(yè)面的訪問(wèn)速度。
【專(zhuān)利說(shuō)明】一種級(jí)聯(lián)樣式表優(yōu)化方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,尤其涉及ー種級(jí)聯(lián)樣式表優(yōu)化方法和裝置。
【背景技術(shù)】
[0002]級(jí)聯(lián)樣式表(CascadingStyle Sheet)簡(jiǎn)稱(chēng)“CSS”,通常又稱(chēng)為“風(fēng)格樣式表(Style Sheet)”,它是用來(lái)進(jìn)行網(wǎng)頁(yè)風(fēng)格設(shè)計(jì)的。例如,如果想讓鏈接字未點(diǎn)擊時(shí)是藍(lán)色的,當(dāng)鼠標(biāo)移上去后字變成紅色的且有下劃線,這就是ー種網(wǎng)頁(yè)風(fēng)格。通過(guò)設(shè)立CSS,可以統(tǒng)一地控制HTML中各標(biāo)志的顯示屬性。級(jí)聯(lián)樣式表可以使人更能有效地控制網(wǎng)頁(yè)外觀。使用級(jí)聯(lián)樣式表,可以擴(kuò)充精確指定網(wǎng)頁(yè)元素位置,外觀以及創(chuàng)建特殊效果的能力。CSS規(guī)則由兩個(gè)主要的部分構(gòu)成:選擇器,以及一條或多條聲明。
[0003]在WEB開(kāi)發(fā)中,經(jīng)常要用到CSS來(lái)修飾頁(yè)面,定義如何顯示HTML元素,樣式通常保存在外部的.CSS文件中。通過(guò)編輯ー個(gè)CSS文檔,可以同時(shí)改變站點(diǎn)中所有頁(yè)面的布局和外觀,同時(shí)控制多重頁(yè)面的樣式。但是,在顯示HTML頁(yè)面吋,CSS要下載到瀏覽器端進(jìn)行渲染,由于通常在編寫(xiě)CSS的文件吋,需要考慮可讀性,在文件中設(shè)置了注釋?zhuān)⑶?,CSS文件中還出現(xiàn)重復(fù)定義等冗余的信息,這些冗余的信息減低了瀏覽器端根據(jù)CSS文件進(jìn)行渲染的運(yùn)行速度,所以可以壓縮CSS內(nèi)容大小提高頁(yè)面的訪問(wèn)速度。

【發(fā)明內(nèi)容】

[0004]有鑒于此,本發(fā)明要解決的ー個(gè)技術(shù)問(wèn)題是提供ー種級(jí)聯(lián)樣式表優(yōu)化方法,能夠壓縮CSS的文本內(nèi)容。
[0005]ー種級(jí)聯(lián)樣式表優(yōu)化方法,包括:對(duì)網(wǎng)頁(yè)HTML文檔中引用的級(jí)聯(lián)樣式表CSS的文本進(jìn)行解析;刪除CSS的文本中的冗 余信息、合并重復(fù)的CSS屬性賦值、并壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度;將所述網(wǎng)頁(yè)HTML文檔中引用的CSS的選擇器名稱(chēng)替換為壓縮后的CSS選擇器名稱(chēng)。
[0006]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)ー步的,所述冗余信息包括:空格、換行符和注釋?zhuān)缓喜⒅貜?fù)的CSS屬性賦值包括:當(dāng)CSS的文本中對(duì)ー個(gè)屬性進(jìn)行了多次賦值時(shí),選取對(duì)此屬性的最后賦值;或者,當(dāng)一個(gè)網(wǎng)頁(yè)HTML文檔中引用的多個(gè)CSS對(duì)屬性具有相同的賦值時(shí),合并此多個(gè)CSS的文本中對(duì)此屬性的賦值。
[0007]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)ー步的,從CSS的文本的起始處進(jìn)行掃描,依次將CSS文本中字符串或符號(hào)進(jìn)行分隔,并生成與所述字符串或符號(hào)相對(duì)應(yīng)的CSS屬性數(shù)據(jù);當(dāng)分隔出的字符串或符號(hào)為換行符或空格時(shí),不生成CSS屬性數(shù)據(jù);其中,所述字符串或符號(hào)包括-selector選擇器名稱(chēng)、“ {”、屬性名稱(chēng)、“:”、屬性値、“;”、“ {”、注釋分隔符、注釋?zhuān)幻總€(gè)所述CSS屬性數(shù)據(jù)包括:表示字符串或符號(hào)類(lèi)型的type屬性、表示字符串或符號(hào)的value屬性、該字符串或符號(hào)前的注釋的commentBefore屬性;其中,所述type屬性的值包括:selector、property、colon、value 和 semicolon ;生成存儲(chǔ)所述 CSS 屬性數(shù)據(jù)的 CSS結(jié)構(gòu)數(shù)組;對(duì)所述CSS結(jié)構(gòu)數(shù)組進(jìn)行遍歷,獲取所述CSS結(jié)構(gòu)數(shù)組中的CSS屬性結(jié)構(gòu),并濾去CSS屬性結(jié)構(gòu)中的commentBefore屬性值,合并重復(fù)的CSS屬性賦值,按照瀏覽器要求的 格式生成CSS代碼。[0008]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步的,建立哈希數(shù)組,依照CSS的文本中的 順序?qū)SS屬性以及對(duì)應(yīng)的賦值放入到所述哈希數(shù)組中;以CSS屬性為主鍵從所述哈希數(shù) 組獲取對(duì)應(yīng)的賦值,能夠合并屬性的賦值。[0009]根據(jù)本發(fā)明的方法的一個(gè)實(shí)施例,進(jìn)一步的,建立壓縮字典,所述壓縮字典中包含 26個(gè)英文字母;根據(jù)設(shè)定的CSS的選擇器名稱(chēng)壓縮后的長(zhǎng)度,從所述壓縮字典中獲取與所 述長(zhǎng)度相等的字符串作為CSS的選擇器名稱(chēng)。[0010]本發(fā)明要解決的一個(gè)技術(shù)問(wèn)題是提供一種級(jí)聯(lián)樣式表優(yōu)化裝置,能夠壓縮CSS的 文本內(nèi)容。[0011]一種級(jí)聯(lián)樣式表的優(yōu)化裝置,包括:CSS代碼優(yōu)化裝置,用于對(duì)網(wǎng)頁(yè)HTML文檔中引 用的CSS的文本進(jìn)行解析,刪除冗余信息、合并重復(fù)的CSS屬性賦值,壓縮CSS代碼并壓縮 CSS的選擇器名稱(chēng)的長(zhǎng)度;HTML文檔優(yōu)化裝置,用于將所述網(wǎng)頁(yè)HTML文檔中引用的CSS的 選擇器名稱(chēng)替換為壓縮后的CSS選擇器名稱(chēng)。[0012]根據(jù)本發(fā)明的裝置的一個(gè)實(shí)施例,進(jìn)一步的,所述冗余信息包括:空格、換行符和 注釋?zhuān)缓喜⒅貜?fù)的CSS屬性賦值包括:當(dāng)CSS的文本中對(duì)一個(gè)屬性進(jìn)行了多次賦值時(shí),所述 CSS代碼優(yōu)化裝置選取對(duì)此屬性的最后賦值;當(dāng)一個(gè)網(wǎng)頁(yè)HTML文檔中引用的多個(gè)CSS對(duì)屬 性具有相同的賦值時(shí),所述CSS代碼優(yōu)化裝置合并此多個(gè)CSS的文本中對(duì)此屬性的賦值。[0013]根據(jù)本發(fā)明的裝置的一個(gè)實(shí)施例,進(jìn)一步的,所述CSS代碼優(yōu)化裝置包括:CSS解 析單元、CSS遍歷單元和CSS壓縮單元;所述CSS解析單元從CSS的文本的起始處進(jìn)行掃 描,依次將CSS文本中字符串或符號(hào)進(jìn)行分隔,并生成與所述字符串或符號(hào)相對(duì)應(yīng)的CSS屬 性數(shù)據(jù);當(dāng)分隔出的字符串或符號(hào)為換行符或空格時(shí),所述CSS解析單元不生成CSS屬性數(shù) 據(jù);其中,所述字符串或符號(hào)包括selector選擇器名稱(chēng)、“ {”、屬性名稱(chēng)、“屬性值、“;”、 “ {”、注釋分隔符、注釋?zhuān)幻總€(gè)所述CSS屬性數(shù)據(jù)包括:表示字符串或符號(hào)類(lèi)型的type屬性、 表示字符串或符號(hào)的value屬性、該字符串或符號(hào)前的注釋的commentBefore屬性;其中, 所述 type 屬性的值包括:selector、property、colon、value 和 semicolon ;所述 CSS 遍歷單 元生成存儲(chǔ)所述CSS屬性數(shù)據(jù)的CSS結(jié)構(gòu)數(shù)組;所述CSS遍歷單元對(duì)所述CSS結(jié)構(gòu)數(shù)組進(jìn)行 遍歷,獲取所述CSS結(jié)構(gòu)數(shù)組中的CSS屬性結(jié)構(gòu),并濾去CSS屬性結(jié)構(gòu)中的commentBefore 屬性值;所述CSS壓縮單元合并重復(fù)的CSS屬性賦值,按照瀏覽器要求的格式生成CSS代 碼。[0014]根據(jù)本發(fā)明的裝置的一個(gè)實(shí)施例,進(jìn)一步的,所述CSS壓縮單元建立哈希數(shù)組,依 照CSS的文本中的順序?qū)SS屬性以及對(duì)應(yīng)的賦值放入到所述哈希數(shù)組中;所述CSS壓縮 單元以CSS屬性為主鍵從所述哈希數(shù)組獲取對(duì)應(yīng)的賦值,合并屬性的賦值。[0015]根據(jù)本發(fā)明的裝置的一個(gè)實(shí)施例,進(jìn)一步的,所述CSS壓縮單元建立壓縮字典,所 述壓縮字典中包含26個(gè)英文字母;所述CSS壓縮單元根據(jù)CSS的選擇器名稱(chēng)壓縮后的長(zhǎng) 度,從所述壓縮字典中獲取與所述長(zhǎng)度相等的字符串作為CSS的選擇器名稱(chēng)。[0016]本發(fā)明的級(jí)聯(lián)樣式表優(yōu)化方法和裝置,能夠去除CSS的文本中的冗余信息,將CSS 的屬性、選擇器合并,壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度,并對(duì)HTML文件中的CSS 的選擇器名稱(chēng)進(jìn)行壓縮,可以減小CSS的文本大小,提高頁(yè)面的訪問(wèn)速度?!緦?zhuān)利附圖】

【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作ー簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為根據(jù)本發(fā)明的級(jí)聯(lián)樣式表優(yōu)化方法的一個(gè)實(shí)施例的流程圖;
[0019]圖2A為ー個(gè)HTML代碼的示意圖,圖2B為2個(gè)CSS的文本示意圖,圖2C為CSS的文本被解析后形成的結(jié)構(gòu)示意圖,圖2D為壓縮后的CSS代碼示意圖;
[0020]圖3為根據(jù)本發(fā)明的級(jí)聯(lián)樣式表優(yōu)化方法的另ー個(gè)實(shí)施例中掃描、壓縮CSS的文本的流程圖;
[0021]圖4為根據(jù)本發(fā)明的級(jí)聯(lián)樣式表優(yōu)化裝置的一個(gè)實(shí)施例的示意圖。
【具體實(shí)施方式】
[0022]下面參照附圖對(duì)本發(fā)明進(jìn)行更全面的描述,其中說(shuō)明本發(fā)明的示例性實(shí)施例。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]在CSS的文本中設(shè)置的CSS規(guī)則由兩個(gè)主要的部分構(gòu)成:選擇器、以及一條或多條聲明。選擇器通常是您需要改變樣式的HTML元素。每條聲明由ー個(gè)屬性和一個(gè)值組成。屬性(property)是希望設(shè)置的樣式屬性。每個(gè)屬性有一個(gè)值。屬性和值被冒號(hào)分開(kāi)。
[0024]如圖1中的級(jí)聯(lián)樣式表優(yōu)化方法的流程圖所示:
[0025]步驟101,對(duì)網(wǎng)頁(yè)HTML文檔中引用的級(jí)聯(lián)樣式表CSS的文本進(jìn)行解析。
[0026]步驟102,刪除CSS的文本中的冗余信息、合并重復(fù)的CSS屬性賦值、并壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度。
[0027]步驟103,將網(wǎng)頁(yè)HTML文檔中引用的CSS的選擇器名稱(chēng)替換為壓縮后的CSS選擇器名稱(chēng)。
[0028]根據(jù)本發(fā)明的一個(gè)實(shí)施例,冗余信息包括:空格、換行符和注釋。
[0029]合并重復(fù)的CSS屬性賦值包括:當(dāng)CSS的文本中對(duì)ー個(gè)屬性進(jìn)行了多次賦值時(shí),選取對(duì)此屬性的最后賦值?;蛘?,當(dāng)一個(gè)網(wǎng)頁(yè)HTML文檔中引用的多個(gè)CSS對(duì)屬性具有相同的賦值時(shí),合并此多個(gè)CSS的文本中對(duì)此屬性的賦值。
[0030]可以采用多種方式完成對(duì)CSS的文本解析,以及刪除CSS的文本中的冗余信息、合并重復(fù)的CSS屬性賦值、并壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度。
[0031]根據(jù)本發(fā)明的一個(gè)實(shí)施例,如圖2A所示的HTML代碼中,div標(biāo)簽通過(guò)class引用了 CSS里的樣式,class名為w_textdot和w_textdot_b。圖2B是CSS的樣式。通過(guò)對(duì)CSS進(jìn)行詞法分析,可以得到結(jié)構(gòu)化數(shù)據(jù)。
[0032]圖3為根據(jù)本發(fā)明的級(jí)聯(lián)樣式表優(yōu)化方法的另ー個(gè)實(shí)施例中掃描、壓縮CSS的文本的流程圖。如圖3所示:[0033]步驟201,從CSS的文本的起始處進(jìn)行掃描,依次將CSS文本中字符串或符號(hào)進(jìn)行 分隔,并生成與字符串或符號(hào)相對(duì)應(yīng)的CSS屬性數(shù)據(jù)。[0034]當(dāng)分隔出的字符串或符號(hào)為換行符或空格時(shí),不生成CSS屬性數(shù)據(jù),可以直接刪 除換行符和空格。[0035]字符串或符號(hào)包括selector選擇器名稱(chēng)、“ {”、屬性名稱(chēng)、“:”、屬性值、“;”、“ {”、注釋分隔符、注釋。[0036]每個(gè)CSS屬性數(shù)據(jù)包括:表示字符串或符號(hào)類(lèi)型的type屬性、表示字符串或符 號(hào)的value屬性、該字符串或符號(hào)前的注釋的commentBefore屬性。type屬性的值包括: selector、property、colon、value和 semico 1n。[0037]圖2C是將圖2B中的CSS文本進(jìn)行解析并進(jìn)行結(jié)構(gòu)化的數(shù)據(jù),為生成的一段TOKEN 列表,每個(gè)TOKEN包含下面的信息:type:[0038]表不TOKEN 的類(lèi)型,value:TOKEN 對(duì)應(yīng)的值,commentBefore:[0039]該TOKEN前的注釋(如果沒(méi)有則沒(méi)有該字段)。其中type的值有:selec tor (選 擇器),[0040]property (css 屬性名),colon (冒號(hào)),value (css 屬性值),[0041]semicolon (分號(hào))。[0042]從CSS的文本的起始處進(jìn)行掃描,從前往后依次掃描要分析的文本,根據(jù)CSS語(yǔ)言 的特征對(duì)字符串或符號(hào)進(jìn)行分割。例如:掃描到/**注釋**/為CSS的注釋?zhuān)瑨呙璧健?{”前 面的.w_textdot為selector (選擇器),“ {”為花括號(hào),掃描到“:”前面的width為屬性 名,“:”為冒號(hào),掃描到“;”前面的3px為屬性值。對(duì)于掃描到的空格、換行符直接扔掉, 不在TOKEN信息里體現(xiàn)。根據(jù)這種規(guī)則一直掃描到文本結(jié)束。[0043]根據(jù)本發(fā)明的一個(gè)實(shí)施例,對(duì)從CSS文本中分隔出的字符串或符號(hào)建立各 自的CSS屬性對(duì)象,存儲(chǔ)每個(gè)字符串或符號(hào)的信息,CSS屬性對(duì)象包括:type、value、 commentBefore等屬性。在掃描后,可以將各個(gè)CSS屬性對(duì)象的內(nèi)容輸出,生成一個(gè)大的字 符串,格式可以如圖2C所示。[0044]步驟202,生成存儲(chǔ)CSS屬性數(shù)據(jù)的CSS結(jié)構(gòu)數(shù)組。可以采用多種方式將在CSS文 本中分隔出的字符串或符號(hào)的屬性形成CSS結(jié)構(gòu)數(shù)組。例如,可以通過(guò)后端語(yǔ)言提供的方 法,如:php的json_decode函數(shù),將結(jié)構(gòu)化如圖2C的字符串的數(shù)據(jù)轉(zhuǎn)化為對(duì)應(yīng)語(yǔ)言的數(shù)組。[0045]步驟203,對(duì)CSS結(jié)構(gòu)數(shù)組進(jìn)行遍歷,獲取CSS結(jié)構(gòu)數(shù)組中的CSS屬性結(jié)構(gòu),并濾去 CSS屬性結(jié)構(gòu)中的commentBefore屬性值,合并重復(fù)的CSS屬性賦值,按照瀏覽器要求的格 式生成CSS代碼。[0046]根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以通過(guò)語(yǔ)言提供的數(shù)組處理方法,如:PHP里的 foreach方法對(duì)TOKEN列表進(jìn)行遍歷。空格在進(jìn)行詞法分析時(shí)已經(jīng)扔掉,注釋包含在TOKEN 信息里,優(yōu)化時(shí)將其扔掉,根據(jù)瀏覽器,例如360瀏覽器的格式要求生成CSS代碼。[0047]根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以建立哈希數(shù)組,依照CSS的文本中的順序?qū)SS屬 性以及對(duì)應(yīng)的賦值放入到哈希數(shù)組中,以CSS屬性為主鍵從哈希數(shù)組獲取對(duì)應(yīng)的賦值,能 夠合并屬性的賦值。[0048]由于CSS的選擇器名稱(chēng)不能以數(shù)字打頭,建立壓縮字典,壓縮字典中包含a到z的26個(gè)字符,根據(jù)設(shè)定的CSS的選擇器名稱(chēng)壓縮后的長(zhǎng)度,從壓縮字典中獲取與長(zhǎng)度相等的字符串作為CSS的選擇器名稱(chēng)。建立壓縮字典,將selector值換成字典的字符,可以減少 selector的長(zhǎng)度,從而減少CSS文件的大小。如:將.w_textdot替換為.a,由10個(gè)字符縮減為2個(gè)字符。[0049]根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以有多種方式實(shí)現(xiàn)壓縮字典,例如可以是列表或數(shù)組。列表或數(shù)組中的值為a到z的26個(gè)字符,通過(guò)遍歷或其他的方法,從列表或數(shù)組中獲取需要的字符,組成字符串而形成CSS的選擇器名稱(chēng),其中,獲取字符的個(gè)數(shù)與壓縮后CSS 的選擇器名稱(chēng)的長(zhǎng)度相同。[0050]例如,壓縮字典通過(guò)PHP中的數(shù)組array實(shí)現(xiàn),在array中設(shè)置了 a到z的26個(gè)字符作為數(shù)組的值,并從array中獲取需要的字符組成字符串,具體的代碼如下:[0051]
【權(quán)利要求】
1.ー種級(jí)聯(lián)樣式表優(yōu)化方法,包括: 對(duì)網(wǎng)頁(yè)HTML文檔中引用的級(jí)聯(lián)樣式表CSS的文本進(jìn)行解析; 刪除CSS的文本中的冗余信息、合并重復(fù)的CSS屬性賦值、并壓縮CSS代碼以及CSS的選擇器名稱(chēng)的長(zhǎng)度; 將所述網(wǎng)頁(yè)HTML文檔中引用的CSS的選擇器名稱(chēng)替換為壓縮后的CSS選擇器名稱(chēng)。
2.如權(quán)利要求1所述的方法,其中: 所述冗余信息包括:空格、換行符和注釋?zhuān)? 合并重復(fù)的CSS屬性賦值包括: 當(dāng)CSS的文本中對(duì)ー個(gè)屬性進(jìn)行了多次賦值時(shí),選取對(duì)此屬性的最后賦值;或者當(dāng)一個(gè)網(wǎng)頁(yè)HTML文檔中引用的多個(gè)CSS對(duì)屬性具有相同的賦值時(shí),合并此多個(gè)CSS的文本中對(duì)此屬性的賦值。
3.如權(quán)利要求2所述的方法,其中: 從CSS的文本的起始處進(jìn)行掃描,依次將CSS文本中字符串或符號(hào)進(jìn)行分隔,并生成與所述字符串或符號(hào)相對(duì)應(yīng)的CSS屬性數(shù)據(jù); 當(dāng)分隔出的字符串或符號(hào)為換行符或空格時(shí),不生成CSS屬性數(shù)據(jù); 其中,所述字符串或符號(hào)包括:selector選擇器名稱(chēng)、“ {”、屬性名稱(chēng)、“:”、屬性值、“ ;注釋分隔符、注釋;` 每個(gè)所述CSS屬性數(shù)據(jù)包括:表示字符串或符號(hào)類(lèi)型的type屬性、表示字符串或符號(hào)的value屬性、該字符串或符號(hào)前的注釋的commentBefo re屬性;其中,所述type屬性的值包括:selector、property> colon、value 和 semicolon ; 生成存儲(chǔ)所述CSS屬性數(shù)據(jù)的CSS結(jié)構(gòu)數(shù)組; 對(duì)所述CSS結(jié)構(gòu)數(shù)組進(jìn)行遍歷,獲取所述CSS結(jié)構(gòu)數(shù)組中的CSS屬性結(jié)構(gòu),并濾去CSS屬性結(jié)構(gòu)中的CommentBefore屬性值,合并重復(fù)的CSS屬性賦值,按照瀏覽器要求的格式生成CSS代碼。
4.如權(quán)利要求3所述的方法,其中: 建立哈希數(shù)組,依照CSS的文本中的順序?qū)SS屬性以及對(duì)應(yīng)的賦值放入到所述哈希數(shù)組中; 以CSS屬性為主鍵從所述哈希數(shù)組獲取對(duì)應(yīng)的賦值,能夠合并屬性的賦值。
5.如權(quán)利要求4所述的方法,其中: 建立壓縮字典,所述壓縮字典中包含26個(gè)英文字母; 根據(jù)設(shè)定的CSS的選擇器名稱(chēng)壓縮后的長(zhǎng)度,從所述壓縮字典中獲取與所述長(zhǎng)度相等的字符串作為CSS的選擇器名稱(chēng)。
6.一種級(jí)聯(lián)樣式表的優(yōu)化裝置,其特征在于,包括: CSS代碼優(yōu)化裝置,用于對(duì)網(wǎng)頁(yè)HTML文檔中引用的CSS的文本進(jìn)行解析,刪除冗余信息、合并重復(fù)的CSS屬性賦值,壓縮CSS代碼并壓縮CSS的選擇器名稱(chēng)的長(zhǎng)度; HTML文檔優(yōu)化裝置,用于將所述網(wǎng)頁(yè)HTML文檔中引用的CSS的選擇器名稱(chēng)替換為壓縮后的CSS選擇器名稱(chēng)。
7.如權(quán)利要求6所述的裝置,其特征在于: 所述冗余信息包括:空格、換行符和注釋?zhuān)缓喜⒅貜?fù)的CSS屬性賦值包括:當(dāng)CSS的文本中對(duì)一個(gè)屬性進(jìn)行了多次賦值時(shí),所述CSS代碼優(yōu)化裝置選取對(duì)此屬性的最后賦值;當(dāng)一個(gè)網(wǎng)頁(yè)HTML文檔中引用的多個(gè)CSS對(duì)屬性具有相同的賦值時(shí),所述CSS代碼優(yōu)化裝置合并此多個(gè)CSS的文本中對(duì)此屬性的賦值。
8.如權(quán)利要求7所述的裝置,其特征在于:所述CSS代碼優(yōu)化裝置包括:CSS解析單元、CSS遍歷單元和CSS壓縮單元;所述CSS解析單元從CSS的文本的起始處進(jìn)行掃描,依次將CSS文本中字符串或符號(hào)進(jìn)行分隔,并生成與所述字符串或符號(hào)相對(duì)應(yīng)的CSS屬性數(shù)據(jù);當(dāng)分隔出的字符串或符號(hào)為換行符或空格時(shí),所述CSS解析單元不生成CSS屬性數(shù)據(jù);其中,所述字符串或符號(hào)包括:selector選擇器名稱(chēng)、“{”、屬性名稱(chēng)、“:”、屬性值、 “ ;注釋分隔符、注釋;每個(gè)所述CSS屬性數(shù)據(jù)包括:表示字符串或符號(hào)類(lèi)型的type屬性、表示字符串或符號(hào)的value屬性、該字符串或符號(hào)前的注釋的commentBefo re屬性;其中,所述type屬性的值包括:selector、property、colon、value 和 semicolon ;所述CSS遍歷單元生成存儲(chǔ)所述CSS屬性數(shù)據(jù)的CSS結(jié)構(gòu)數(shù)組;所述CSS遍歷單元對(duì)所述CSS結(jié)構(gòu)數(shù)組進(jìn)行遍歷,獲取所述CSS結(jié)構(gòu)數(shù)組中的CSS屬性結(jié)構(gòu),并濾去CSS屬性結(jié)構(gòu)中的commentBefore屬性值;所述CSS壓縮單元合并重復(fù)的CSS屬性賦值,按照瀏覽器要求的格式生成CSS代碼。
9.如權(quán)利要求8所述的裝置,其特征在于:所述CSS壓縮單元建立哈希數(shù)組,依照CSS的文本中的順序?qū)SS屬性以及對(duì)應(yīng)的賦值放入到所述哈希數(shù)組中;所述CSS壓縮單元以CSS屬性為主鍵從所述哈希數(shù)組獲取對(duì)應(yīng)的賦值,合并屬性的賦值。
10.如權(quán)利要求4所述的方法,其特征在于:所述CSS壓縮單元建立壓縮字典,所述壓縮字典中包含26個(gè)英文字母;所述CSS壓縮單元根據(jù)CSS的選擇器名稱(chēng)壓縮后的長(zhǎng)度,從所述壓縮字典中獲取與所述長(zhǎng)度相等的字符串作為CSS的選擇器名稱(chēng)。
【文檔編號(hào)】G06F17/30GK103500118SQ201310507117
【公開(kāi)日】2014年1月8日 申請(qǐng)日期:2013年10月24日 優(yōu)先權(quán)日:2013年10月24日
【發(fā)明者】李成銀 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
化隆| 灵川县| 洞口县| 义乌市| 辽宁省| 甘德县| 云浮市| 康平县| 河池市| 江孜县| 新营市| 和平区| 普宁市| 五指山市| 定边县| 建湖县| 绍兴市| 建平县| 阳原县| 加查县| 邓州市| 淳安县| 朝阳县| 古田县| 称多县| 乌什县| 多伦县| 新泰市| 海阳市| 江口县| 余姚市| 商河县| 从江县| 南木林县| 天台县| 肇东市| 瑞丽市| 娄底市| 吐鲁番市| 夏河县| 鹰潭市|