国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種實(shí)現(xiàn)Javascript文件動(dòng)態(tài)壓縮與合并方法

      文檔序號(hào):7979979閱讀:532來源:國知局
      專利名稱:一種實(shí)現(xiàn)Javascript文件動(dòng)態(tài)壓縮與合并方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別是涉及一種在互聯(lián)網(wǎng)應(yīng)用中,基于Tapestry框架實(shí)現(xiàn)頁面Javascript文件動(dòng)態(tài)壓縮的與合并的方法。
      背景技術(shù)
      在現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用中,頁面都引用的大量的JS腳本文件,而對(duì)JS文件進(jìn)行壓縮。有效的減少文件的大小,可以提高用戶瀏覽頁面的速度,減少HTTP請(qǐng)求,降低服務(wù)器的壓力,給予用戶的更好的體驗(yàn)方式。所以,現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用中,JS整合以及壓縮是很重要的一部分。在現(xiàn)在JS (Javascript)滿天飛的時(shí)代,大家都知道緩存能帶來的巨大好處,但緩存確實(shí)是非常麻煩的一個(gè)問題,為了讓程序更快,在服務(wù)器上為JS加上緩沖5天的代碼,但產(chǎn)品更新后第二天就接到報(bào)告說系統(tǒng)出錯(cuò),詳細(xì)了解后就發(fā)現(xiàn)是緩存引起的,讓用戶刪除緩存后就會(huì)0K。原因很簡單,就是JS已經(jīng)修改了,但用戶還在使用緩存中的老JS?;蛘呙看涡薷腏S文件后,都是要重新的再去壓縮,再去整合JS文件把文件放到一起。如果修改比較多的部分。整合起來比較麻煩,容易遺忘。針對(duì)現(xiàn)有JS壓縮以及整合,都是在部署之前把JS腳本去壓縮以及整合,當(dāng)JS腳本發(fā)生變化時(shí),重新更改JS文件,然后再去壓縮文件來滿足要求,時(shí)效性差,并且如果修改文件過多,容易忘記壓縮部分文件造成未知的結(jié)果。所以,需要提供一種新的實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法,以解決以上的技術(shù)問題。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種基于TapeStry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法,可以解決當(dāng)JS腳本修改后不能動(dòng)態(tài)壓縮及整合的缺點(diǎn),需要重新更改JS文件,然后再去壓縮文件來滿足要求,造成時(shí)效性差,且修改文件過多容易忘記壓縮部分文件造成未知結(jié)果的技術(shù)問題。為了解決以上技術(shù)問題,本發(fā)明提供一種實(shí)現(xiàn)Javascript文件動(dòng)態(tài)壓縮與合并方法,包括客戶端用戶發(fā)出頁面請(qǐng)求;服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,對(duì)于Javascript請(qǐng)求,轉(zhuǎn)入Javascript 過濾器中;讀取Javascript文件,動(dòng)態(tài)地對(duì)Javascript文件進(jìn)行壓縮和合并;tapestry框架對(duì)頁面進(jìn)行整合,展示到客戶端。進(jìn)一步地,所述服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,對(duì)于非頁面Javascript 的請(qǐng)求轉(zhuǎn)入非Javascript過濾器進(jìn)行處理。進(jìn)一步地,所述服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,由TapestryFilter將請(qǐng)求轉(zhuǎn)接到Tapestry框架。進(jìn)一步地,當(dāng)請(qǐng)求實(shí)際到達(dá)渲染處理器時(shí),該處理器向目標(biāo)頁面發(fā)出一 yIv activate · ^f牛,^J Μ M i/^ org. apache. tapestry5. internal, services. PageResponseRenderer 月艮務(wù)。進(jìn)一步地,所述讀取Javascript文件,動(dòng)態(tài)地對(duì)Javascript文件進(jìn)行壓縮和合并,具體包括:Tapestry 米用 org. apache. tapestry5. services. MarkupRenderer 月艮務(wù)獲取頁面中Javascript的文件,然后通過壓縮的方法對(duì)Javascript文件進(jìn)行動(dòng)態(tài)壓縮, Tapestry對(duì)壓縮后的Javascript文件進(jìn)行整合。與現(xiàn)有技術(shù)相比,本發(fā)明提供一種基于TapeStry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法,可以很容易的實(shí)現(xiàn)修改JS腳本后不用重新壓縮,在服務(wù)器加載頁面時(shí)動(dòng)態(tài)的對(duì)JS 進(jìn)行壓縮,支持水平擴(kuò)展,時(shí)效性強(qiáng),易用性好。


      此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是本發(fā)明提供一種基于TapeStry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法的流程圖;圖2是本發(fā)明實(shí)施例提供一種基于TapeStry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法的流程圖。
      具體實(shí)施例方式為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明涉及基于Tapestry框架,在頁面初始化的時(shí)候,對(duì)頁面所需要的JS文件進(jìn)行整合以及壓縮。Tapestry框架是一個(gè)位于java servlet容器和Tapestry應(yīng)用程序之間的層。 Tapestry不是一個(gè)獨(dú)立運(yùn)行的服務(wù)器;它是一個(gè)servlet的擴(kuò)展,它運(yùn)行于servlet容器(例如Tomcat)或包含servlet容器的應(yīng)用服務(wù)器中(如Jbose,Websphere,或者 WebLogic) 0 Tapestry應(yīng)用其實(shí)是由一系列頁面組成,而每個(gè)頁面是由可以復(fù)用的組件構(gòu)成。JS(Javascript)主要是做界面的,用于客戶端也就是瀏覽器端上執(zhí)行的腳本開發(fā),可以使網(wǎng)頁有動(dòng)態(tài)的效果(特效,如圖片、文字的滾動(dòng);層的動(dòng)態(tài)切換,顯示及隱藏;對(duì) html元素的操作;動(dòng)態(tài)的對(duì)html內(nèi)容修改;動(dòng)態(tài)的修改CSS樣式;實(shí)現(xiàn)如下拉列表的連動(dòng)等等),可以進(jìn)行表單的輸入驗(yàn)證(如郵箱、電話、郵編的合法性,輸入內(nèi)容長度及內(nèi)容驗(yàn)證等)。Javascript短小精悍,又是在客戶機(jī)上執(zhí)行的,大大提高了網(wǎng)頁的瀏覽速度和交互能力;同時(shí)它又是專門為制作Web網(wǎng)頁而量身定做的一種簡單的編程語言。如圖1所示,本發(fā)明提供一種基于TapeStry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法,包括取得用戶請(qǐng)求,分析用戶請(qǐng)求的頁面,取出用戶請(qǐng)求所需的JS文件,對(duì)JS文件進(jìn)行壓縮與合并。具體包括步驟10、客戶端用戶發(fā)出頁面請(qǐng)求。步驟20、服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,對(duì)于非頁面JS的請(qǐng)求轉(zhuǎn)入其他過濾器進(jìn)行處理;對(duì)于JS請(qǐng)求,轉(zhuǎn)入JS過濾器中。步驟30、對(duì)JS文件進(jìn)行讀取,動(dòng)態(tài)地對(duì)JS文件進(jìn)行壓縮,然后把JS文件合并到一起,動(dòng)態(tài)地生成JS文件名稱。步驟40、最后由tapestry框架對(duì)頁面進(jìn)行整合,展示到客戶端。下面將結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過程能充分理解并據(jù)以實(shí)施。如圖2所示,本發(fā)明實(shí)施例提供一種基于TapeStry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法,包括步驟1、客戶端在頁面上輸入網(wǎng)址,發(fā)出請(qǐng)求。步驟2、Tapestry5框架采用了一種非侵入式的集成方式,使用javax. servlet. Filter作為框架的入口,由TapestryFilter將請(qǐng)求轉(zhuǎn)接到Tapestry框架。步驟3、、當(dāng)一個(gè)請(qǐng)求實(shí)際到達(dá)渲染處理器時(shí),該處理器首先會(huì)向目標(biāo)頁面發(fā)出一個(gè)activate事件,為頁面提供一個(gè)準(zhǔn)備渲染,并處理傳入?yún)?shù)的機(jī)會(huì)。步驟 4、渲染流程弓I 入 org. apache. tapestry5. internal, services. PageResponseRenderer服務(wù),該服務(wù)會(huì)實(shí)際的調(diào)度頁面渲染。步驟5、環(huán)境構(gòu)造是頁面渲染器(PageMarkupRenderer)的一部分,對(duì)應(yīng)于org. apache. tapestry5. services. MarkupRenderer 月艮務(wù)。Tapestry 米用——個(gè)管道了組織這個(gè)服務(wù),在這個(gè)服務(wù)中,獲取頁面中JS的文件,然后通過壓縮的方法對(duì)JS文件進(jìn)行動(dòng)態(tài)壓縮, Tapestry對(duì)壓縮后的JS文件進(jìn)行整合(步驟6)。具體過程為首先,獲得頁面類型(content type),默認(rèn)為“ text/html ”;然后,根據(jù)這一類型生產(chǎn)一個(gè)輸出器org. apache. tapestry5. Markupffriter,組件若有需要輸出HTML片段,則會(huì)輸出到這個(gè)輸出器中;其后,org. apache. tapestry5. internal, services. PageMarkupRenderer這一渲染器將會(huì)開始調(diào)度組件開始執(zhí)行其生命周期,在 PageMarkupRenderer中進(jìn)行對(duì)JS文件的動(dòng)態(tài)的壓縮以及整合;最后,MarkupWriter生成的中間結(jié)構(gòu)會(huì)實(shí)際的輸出到返回給客戶端的輸出流中。采用本發(fā)明所述方法,與現(xiàn)有技術(shù)相比,取得修改JS文件,不用壓縮發(fā)布,并且JS 腳本修改的效性加強(qiáng)的進(jìn)步,達(dá)到了動(dòng)態(tài)的壓縮,整合JS的效果,最終提高了用戶體驗(yàn),給程序開發(fā)帶來了方便。上述說明示出并描述了本發(fā)明的一個(gè)優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、 修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
      權(quán)利要求
      1.一種實(shí)現(xiàn)Javascript文件動(dòng)態(tài)壓縮與合并方法,其特征在于,包括 客戶端用戶發(fā)出頁面請(qǐng)求;服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,對(duì)于Javascript請(qǐng)求,轉(zhuǎn)入Javascript過濾器中;讀取Javascript文件,動(dòng)態(tài)地對(duì)Javascript文件進(jìn)行壓縮和合并; tapestry框架對(duì)頁面進(jìn)行整合,展示到客戶端。
      2.如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,對(duì)于非頁面Javascript的請(qǐng)求轉(zhuǎn)入非Javascript過濾器進(jìn)行處理。
      3.如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,由TapestryFilter將請(qǐng)求轉(zhuǎn)接到Tapestry框架。
      4.如權(quán)利要求3所述的方法,其特征在于,當(dāng)請(qǐng)求實(shí)際到達(dá)渲染處理器時(shí),該處理 g feMHH 出一 f activate 牛,^JJaI Mii org. apache. tapestry5. internal.services. PageResponseRenderer 月艮務(wù)。
      5.如權(quán)利要求1所述的方法,其特征在于,所述讀取Javascript文件,動(dòng)態(tài)地對(duì) Javascript t ^f牛; J£ _ 禾口^f #,Jl ^ll :Tapestry M org. apache. tapestry5. services. MarkupRenderer服務(wù)獲取頁面中Javascript的文件,然后通過壓縮的方法對(duì) Javascript文件進(jìn)行動(dòng)態(tài)壓縮,Tapestry對(duì)壓縮后的Javascript文件進(jìn)行整合。
      全文摘要
      本發(fā)明提供一種實(shí)現(xiàn)Javascript文件動(dòng)態(tài)壓縮與合并方法,包括客戶端用戶發(fā)出頁面請(qǐng)求;服務(wù)器根據(jù)客戶端發(fā)出的請(qǐng)求進(jìn)行分析,對(duì)于JaVascript請(qǐng)求,轉(zhuǎn)入Javascript過濾器中;讀取Javascript文件,動(dòng)態(tài)地對(duì)JaVascript文件進(jìn)行壓縮和合并;tapestry框架對(duì)頁面進(jìn)行整合,展示到客戶端。通過本發(fā)明提供一種基于Tapestry5實(shí)現(xiàn)頁面JS文件動(dòng)態(tài)壓縮與合并方法,可以很容易的實(shí)現(xiàn)修改JS腳本后不用重新壓縮,在服務(wù)器加載頁面時(shí)動(dòng)態(tài)的對(duì)JS進(jìn)行壓縮,支持水平擴(kuò)展,時(shí)效性強(qiáng),易用性好。
      文檔編號(hào)H04L29/08GK102521266SQ20111037213
      公開日2012年6月27日 申請(qǐng)日期2011年11月18日 優(yōu)先權(quán)日2011年11月18日
      發(fā)明者李斌, 潘俊, 祝明遠(yuǎn), 肖飛秋, 謝向榮 申請(qǐng)人:深圳中興網(wǎng)信科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1