本發明涉及Web應用技術領域,具體而言,涉及一種HTML文件的分布式發布方法和一種HTML文件的分布式發布裝置。
背景技術:
目前,現有的B/S架構的項目,都是將靜態HTML(Hyper Text Markup Language,標準通用標記語言)文件放在Web服務器上,或者通過后臺的模版引擎動態渲染后,提供給客戶端使用。采用這種方式,所有的對HTML文件的請求,都會集中由Web服務器提供,增加了Web服務器的負擔,耗費了Web服務器性能。特別是在并發量大或項目頁面量大時,以上的這些缺點會放大,最終成為產品的瓶頸和短板。
因此,如何降低Web服務器的負擔,優化Web服務器性能成為亟待解決的技術問題。
技術實現要素:
本發明正是基于上述問題,提出了一種新的技術方案,可以降低Web服務器的負擔,優化Web服務器性能。
有鑒于此,本發明的第一方面提出了一種HTML文件的分布式發布方法,包括:根據業務需要,將HTML文件劃分為多個模塊;生成所述多個模塊中的每個模塊的HTML模板文件,并將所述HTML模板文件轉換成JavaScript文件;將所述JavaScript文件發布到內容分發網絡(Content Delivery Network,CDN)上。
在該技術方案中,通過將HTML文件轉換成JavaScript文件,并發布到CDN,以將HTML文件存放到CND服務器上,避免了將HTML文件存放在Web服務器上,也就避免了由Web服務器提供對HTML文件的請求,從而降低了Web服務器的負擔,優化Web服務器性能。另外,可以就近訪問CND服務器,大幅度地提升了站點的響應速度,減少了Web服務器資源和CND資源的浪費,提升了用戶的使用體驗。
在上述技術方案中,優選地,所述生成所述多個模塊中的每個模塊的HTML模板文件,并將所述HTML模板文件轉換成JavaScript文件的步驟,具體包括:在所述每個模塊中添加標記,以生成所述HTML模板文件;解析出所述HTML模板文件中的標記,并根據所述HTML模板文件中的標記,將所述HTML模板文件轉換成所述JavaScript文件。
在該技術方案中,由于CDN上不允許存放HTML文件,因此,通過在每個模塊中添加標記來生成HTML模板文件,然后將其轉換成JavaScript文件,從而為HTML文件發布到CDN上提供了基礎。
在上述任一技術方案中,優選地,所述解析出所述HTML模板文件中的標記的步驟,具體包括:將所述HTML模板文件中的內容讀取為字符串,使用正則表達式對所述字符串進行分析,以獲取到所述HTML模板文件中的標記。
在上述任一技術方案中,優選地,所述HTML模板文件中的標記包括:占位標記、條件控制標記、分支控制標識和循環標記。
在該技術方案中,使用正則表達式對字符串進行分析,找出預置的占位標記,將占位替換為業務數據,或JS(JavaScript)變量,并在變量被賦值后,替換變量占位標記。將條件控制標識及分支控制標識,轉換為JavaScript中的條件控制語句及分支控制語句,從而實現HTML模板文件到JavaScript文件的轉換。
在上述任一技術方案中,優選地,所述多個模塊之間相互獨立,且所述多個模塊中的任兩個模塊之間通過接口進行交互。
在該技術方案中,多個模塊之間相互獨立,各自負責各自的展現和邏輯,彼此之間通過接口進行交互,從而為HTML文件的分布式發布提供了保障。
本發明的第二方面提出了一種HTML文件的分布式發布裝置,包括:劃分單元,用于根據業務需要,將HTML文件劃分為多個模塊;轉換單元,用于生成所述多個模塊中的每個模塊的HTML模板文件,并將所述HTML模板文件轉換成JavaScript文件;發布單元,用于將所述JavaScript文件發布到內容分發網絡上。
在該技術方案中,通過將HTML文件轉換成JavaScript文件,并發布到CDN,以將HTML文件存放到CND服務器上,避免了將HTML文件存放在Web服務器上,也就避免了由Web服務器提供對HTML文件的請求,從而降低了Web服務器的負擔,優化Web服務器性能。另外,可以就近訪問CND服務器,大幅度地提升了站點的響應速度,減少了Web服務器資源和CND資源的浪費,提升了用戶的使用體驗。
在上述技術方案中,優選地,所述轉換單元包括:生成子單元,用于在所述每個模塊中添加標記,以生成所述HTML模板文件;轉換子單元,用于解析出所述HTML模板文件中的標記,并根據所述HTML模板文件中的標記,將所述HTML模板文件轉換成所述JavaScript文件。
在該技術方案中,由于CDN上不允許存放HTML文件,因此,通過在每個模塊中添加標記來生成HTML模板文件,然后將其轉換成JavaScript文件,從而為HTML文件發布到CDN上提供了基礎。
在上述任一技術方案中,優選地,所述轉換子單元具體用于,將所述HTML模板文件中的內容讀取為字符串,使用正則表達式對所述字符串進行分析,以獲取到所述HTML模板文件中的標記。
在上述任一技術方案中,優選地,所述HTML模板文件中的標記包括:占位標記、條件控制標記、分支控制標識和循環標記。
在該技術方案中,使用正則表達式對字符串進行分析,找出預置的占位標記,將占位替換為業務數據,或JS(JavaScript)變量,并在變量被賦值后,替換變量占位標記。將條件控制標識及分支控制標識,轉換為JavaScript中的條件控制語句及分支控制語句,從而實現HTML模板文件到JavaScript文件的轉換。
在上述任一技術方案中,優選地,所述多個模塊之間相互獨立,且所述多個模塊中的任兩個模塊之間通過接口進行交互。
在該技術方案中,多個模塊之間相互獨立,各自負責各自的展現和邏輯,彼此之間通過接口進行交互,從而為HTML文件的分布式發布提供了保障。
通過本發明的技術方案,可以降低Web服務器的負擔,優化Web服務器性能。
附圖說明
圖1示出了根據本發明的一個實施例的HTML文件的分布式發布方法的流程示意圖;
圖2示出了根據本發明的另一個實施例的HTML文件的分布式發布方法的流程示意圖;
圖3示出了根據本發明的一個實施例的HTML文件的分布式發布裝置的結構示意圖。
具體實施方式
為了可以更清楚地理解本發明的上述目的、特征和優點,下面結合附圖和具體實施方式對本發明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細節以便于充分理解本發明,但是,本發明還可以采用其他不同于在此描述的其他方式來實施,因此,本發明的保護范圍并不受下面公開的具體實施例的限制。
圖1示出了根據本發明的一個實施例的HTML文件的分布式發布方法的流程示意圖。
如圖1所示,根據本發明的一個實施例的HTML文件的分布式發布方法,包括:
步驟102,根據業務需要,將HTML文件劃分為多個模塊。
步驟104,生成所述多個模塊中的每個模塊的HTML模板文件,并將所述HTML模板文件轉換成JavaScript文件。
步驟106,將所述JavaScript文件發布到內容分發網絡上。
在該技術方案中,通過將HTML文件轉換成JavaScript文件,并發布到CDN,以將HTML文件存放到CND服務器上,避免了將HTML文件存放在Web服務器上,也就避免了由Web服務器提供對HTML文件的請求,從而降低了Web服務器的負擔,優化Web服務器性能。另外,可以就近訪問CND服務器,大幅度地提升了站點的響應速度,減少了Web服務器資源和CND資源的浪費,提升了用戶的使用體驗。
在上述技術方案中,優選地,步驟104具體包括:在所述每個模塊中添加標記,以生成所述HTML模板文件;解析出所述HTML模板文件中的標記,并根據所述HTML模板文件中的標記,將所述HTML模板文件轉換成所述JavaScript文件。
在該技術方案中,由于CDN上不允許存放HTML文件,因此,通過在每個模塊中添加標記來生成HTML模板文件,然后將其轉換成JavaScript文件,從而為HTML文件發布到CDN上提供了基礎。
具體地,通過在每個模塊中加入標記(語法糖),用來標識HTML中的占位、條件控制、循環等。
如下代碼,以下代碼中的雙花括號即語法糖。
<div>{{entity.name}}!您好</div>
<div>年齡:{{entity.age}}</div>
{{each list}}
<div>{{index+1}}{{value}}!</div>
{{/each}}
在上述任一技術方案中,優選地,所述解析出所述HTML模板文件中的標記的步驟,具體包括:將所述HTML模板文件中的內容讀取為字符串,使用正則表達式對所述字符串進行分析,以獲取到所述HTML模板文件中的標記。
在上述任一技術方案中,優選地,所述HTML模板文件中的標記包括:占位標記、條件控制標記、分支控制標識和循環標記。
在該技術方案中,使用正則表達式對字符串進行分析,找出預置的占位標記,將占位替換為業務數據,或JS(JavaScript)變量,并在變量被賦值后,替換變量占位標記。將條件控制標識及分支控制標識,轉換為JavaScript中的條件控制語句及分支控制語句,從而實現HTML模板文件到JavaScript文件的轉換。
在上述任一技術方案中,優選地,所述多個模塊之間相互獨立,且所述多個模塊中的任兩個模塊之間通過接口進行交互。
在該技術方案中,多個模塊之間相互獨立,各自負責各自的展現和邏輯,彼此之間通過接口進行交互,從而為HTML文件的分布式發布提供了保障。
圖2示出了根據本發明的另一個實施例的HTML文件的分布式發布方法的流程示意圖。
如圖2所示,根據本發明的另一個實施例的HTML文件的分布式發布方法,包括:
步驟202,將HTML文件劃分為多個模塊。每個模塊擁有自身獨有的CSS(Cascading Style Sheets,層疊樣式表)和JS(JavaScript)等資源。多個模塊相互之間具有獨立性,各自負責各自的展現和邏輯,彼此之間通過接口進行交互。
步驟204,對多個模塊分別模板化。
步驟206,轉換成JavaScript文件。
步驟208,將JavaScript文件發布到CDN s1、CDN s2、CDN s3等CDN上,以通過CDN為客戶端提供HTML頁面的請求。
圖3示出了根據本發明的一個實施例的HTML文件的分布式發布裝置的結構示意圖。
如圖3所示,根據本發明的一個實施例的HTML文件的分布式發布裝置300,包括:劃分單元302、轉換單元304和發布單元306。
劃分單元302,用于根據業務需要,將HTML文件劃分為多個模塊;轉換單元304,用于生成所述多個模塊中的每個模塊的HTML模板文件,并將所述HTML模板文件轉換成JavaScript文件;發布單元306,用于將所述JavaScript文件發布到內容分發網絡上。
在該技術方案中,通過將HTML文件轉換成JavaScript文件,并發布到CDN,以將HTML文件存放到CND服務器上,避免了將HTML文件存放在Web服務器上,也就避免了由Web服務器提供對HTML文件的請求,從而降低了Web服務器的負擔,優化Web服務器性能。另外,可以就近訪問CND服務器,大幅度地提升了站點的響應速度,減少了Web服務器資源和CND資源的浪費,提升了用戶的使用體驗。
在上述技術方案中,優選地,所述轉換單元304包括:生成子單元3042,用于在所述每個模塊中添加標記,以生成所述HTML模板文件;轉換子單元3044,用于解析出所述HTML模板文件中的標記,并根據所述HTML模板文件中的標記,將所述HTML模板文件轉換成所述JavaScript文件。
在該技術方案中,由于CDN上不允許存放HTML文件,因此,通過在每個模塊中添加標記來生成HTML模板文件,然后將其轉換成JavaScript文件,從而為HTML文件發布到CDN上提供了基礎。
在上述任一技術方案中,優選地,所述轉換子單元3044具體用于,將所述HTML模板文件中的內容讀取為字符串,使用正則表達式對所述字符串進行分析,以獲取到所述HTML模板文件中的標記。
在上述任一技術方案中,優選地,所述HTML模板文件中的標記包括:占位標記、條件控制標記、分支控制標識和循環標記。
在該技術方案中,使用正則表達式對字符串進行分析,找出預置的占位標記,將占位替換為業務數據,或JS(JavaScript)變量,并在變量被賦值后,替換變量占位標記。將條件控制標識及分支控制標識,轉換為JavaScript中的條件控制語句及分支控制語句,從而實現HTML模板文件到JavaScript文件的轉換。
在上述任一技術方案中,優選地,所述多個模塊之間相互獨立,且所述多個模塊中的任兩個模塊之間通過接口進行交互。
在該技術方案中,多個模塊之間相互獨立,各自負責各自的展現和邏輯,彼此之間通過接口進行交互,從而為HTML文件的分布式發布提供了保障。
以上結合附圖詳細說明了本發明的技術方案,通過本發明的技術方案,將Web前端資源中,除首頁中少量的占位符及Dom文檔結構代碼外,都存放到CDN服務器上(包括圖片、CSS和JS等靜態資源),并通過CDN的同步機制,將資源分發到整個互聯網中,從而降低Web服務器的負擔,優化Web服務器性能。另外,用戶可以就近訪問,大幅度提升站點的響應速度,減少Web服務器資源的浪費,提升了用戶的體驗。
以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。