[發明專利]級聯樣式表解析方法及解析器、網頁展示方法及服務器有效
| 申請號: | 201210185447.1 | 申請日: | 2012-06-06 |
| 公開(公告)號: | CN102693323A | 公開(公告)日: | 2012-09-26 |
| 發明(設計)人: | 羅飛 | 申請(專利權)人: | 新浪網技術(中國)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 級聯 樣式 表解 方法 解析 網頁 展示 服務器 | ||
技術領域
本發明涉及計算機技術領域,特別是涉及級聯樣式表解析方法及解析器、網頁展示方法及服務器。
背景技術
用戶在瀏覽器上瀏覽網頁的時候,一般網頁會有其固有的顏色、格式等風格,而這種風格是由CSS(Cascading?Style?Sheet,級聯樣式表)確定的。CSS是用來進行網頁風格設計的,它是一種比較低級的頁面前端語言,它沒有變量、函數、嵌套、繼承等高級語言的特性。用戶通過瀏覽器向服務器請求網頁時,服務器會將用戶訪問的網頁對應的CSS文件返回給瀏覽器進行解析,以使瀏覽器上展開的網頁滿足該CSS文件確定的網頁風格。
現有技術中一些CSS解析器,可以采用“替換”的方式,在進行CSS解析時,允許用戶在CSS文件的CSS代碼中使用一些特殊字符串,但是這種特殊字符串需要在用戶瀏覽網頁之前就預先編譯代碼,因為需要在編譯時將特殊字符串替換為相應的值。
發明人在研究過程中發現,現有技術因為只能采用“替換”的方式,導致CSS代碼的靈活性依然比較差,例如不能在CSS代碼中使用條件語句、循環語句等,而且現有技術在運行CSS代碼之前需要事先進行編譯,就不能實現在用戶訪問網頁時,再觸發CSS編譯器進行編譯,這就造成了CSS編譯器的解析效率較低的問題,并且進一步的,服務器在向用戶展示網頁的時候,也會因為展示過程中的編譯過程而影響效率。
發明內容
本發明所要解決的技術問題是,提供一種級聯樣式表解析方法及解析器、一種網頁展示方法及服務器,以解決現有技術中CSS解析器需要預先編譯導致的解析效率較低的問題,以及服務器展示網頁的效率低的技術問題。
為解決上述技術問題,本發明實施例提供了一種級聯樣式表解析方法,包括:
當用戶通過瀏覽器向服務器提交的網頁訪問請求對應的級聯樣式表CSS文件不存在時,CSS解析器接收服務器傳遞的所述CSS文件的CSS文件地址;
CSS解析器獲取與所述CSS文件地址一一對應的預先保存的CSS模板文件;
CSS解析器將所述CSS模板文件解析成高級語言的可執行文件,并運行所述可執行文件以獲得所述CSS文件的目標CSS代碼。
優選的,所述CSS模板文件包括采用原生語法編寫的第一部分模板,和采用簡單語法編寫的第二部分模板,則所述將所述CSS模板文件解析成高級語言的可執行文件,具體包括:
將所述第一部分模板替換為預定編號;
采用正則表達式匹配所述第二部分模板,以生成與所述第二部分模板對應的第二部分可執行文件;
將所述預定編號還原為所述第一部分模板,并解析所述第一部分模板以生成與所述第一部分模板對應的第一部分可執行文件;
將所述第一部分可執行文件和第二部分可執行文件組合為所述高級語言的可執行文件。
優選的,所述采用正則表達式匹配所述第二部分模板之前,還包括:
判斷所述第二部分模板中的變量是否被賦值,如果否,則所述采用正則表達式匹配所述第二部分模板,具體為:
采用正則表達式匹配所述第二部分模板中除了被賦值的變量之外的部分。
優選的,在所述將所述CSS模板文件解析成高級語言的可執行文件之前,所述方法還包括:
判斷所述CSS模板文件是否存在與之對應的業務邏輯代碼文件,如果是,則加載所述業務邏輯代碼文件以獲得所述業務邏輯代碼文件中的業務邏輯代碼;
則所述將所述CSS模板文件解析成高級語言的可執行文件,具體為:
依據所述業務邏輯代碼將所述CSS模板文件解析成高級語言的可執行文件。
優選的,在所述CSS模板文件中預先添加開關常量,所述開關常量用于表示是否開啟調試模式,則所述方法還包括:
判斷所述開關常量是否表示開啟調試模式,如果否,則將所述目標CSS代碼生成對應的目標CSS文件,并保存所述生成的目標CSS文件。
一種網頁展示方法,應用于包括CSS解析器的服務器上,該方法包括:
服務器接收用戶通過客戶端瀏覽器提交的網頁訪問請求;
服務器判斷與所述網頁訪問請求對應的級聯樣式表CSS文件是否存在,如果否,則CSS解析器接收服務器傳遞的所述CSS文件的CSS文件地址;
CSS解析器獲取與所述CSS文件地址一一對應的預先保存的CSS模板文件;
CSS解析器將所述CSS模板文件解析成高級語言的可執行文件,并運行所述可執行文件以獲得所述CSS文件的目標CSS代碼;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于新浪網技術(中國)有限公司,未經新浪網技術(中國)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210185447.1/2.html,轉載請聲明來源鉆瓜專利網。





