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

Javascript動態(tài)合并服務(wù)器及其工作過程的制作方法

文檔序號:7815717閱讀:182來源:國知局
Java script動態(tài)合并服務(wù)器及其工作過程的制作方法
【專利摘要】一種java script動態(tài)合并服務(wù)器,該服務(wù)器通過配置文件和請求的不同參數(shù),動態(tài)的將存儲于后臺的多個java scripts文件組合、壓縮成一個java script文件,并將其返回;該java script動態(tài)合并服務(wù)器的架構(gòu)包括http文件服務(wù)器、目標文件、目標文件參數(shù)、配置文件、源文件、文件分析器;該服務(wù)器架構(gòu)簡單、清晰,無需對javascript程序做任何修改,不會影響程序的任何邏輯;配置靈活,只需要修改配置文件就能夠?qū)崿F(xiàn)不同模塊、不同版本的組合;使用方便,在請求的路徑中加入?yún)?shù)就能得到不同版本、不同組合的.js文件;而且方便調(diào)試時定位錯誤。
【專利說明】Java scr i pt動態(tài)合并服務(wù)器及其工作過程
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)web服務(wù)器領(lǐng)域,尤其涉及大型java script開發(fā)應(yīng)用【技術(shù)領(lǐng)域】。
【【背景技術(shù)】】
[0002]隨著瀏覽器的性能的提高,java script在互聯(lián)網(wǎng)項目中的應(yīng)用越來越廣泛,javascript的代碼數(shù)量及其復(fù)雜程度也隨之成倍增長。由于歷史原因,java script存在開放全局變量,不完整的面向?qū)ο笤O(shè)計等缺陷,而且天生缺少外部引用機制和模塊化機制,這樣給開發(fā)和調(diào)試大型的java script程序帶來了許多的困難。
[0003]很多技術(shù)嘗試解決開發(fā)大型java script的技術(shù)問題。比如Require, js和sea.js,他們均采用java script動態(tài)地添加文檔標簽的方法實現(xiàn)js的異步下載,通過在javascript文件中聲明對其他庫文件的依賴,達到將復(fù)雜的java script文件化分為可以復(fù)用的多個模塊,從而實現(xiàn)的js文件的模塊化。
[0004]這些方法的共同特點是:用戶的代碼需要用固定模式來封裝,使其符合模塊化調(diào)用的規(guī)范;需要依賴聲明模塊;由外部的js文件的動態(tài)加載。
[0005]比如在Require, js中,就可以用define函數(shù)定義一個ID為“l(fā)ogger”的模塊,這樣在其他的代碼里面,就可以利用Require, js函數(shù)來調(diào)用“l(fā)ogger”模塊。則“l(fā)ogger”模塊成為實現(xiàn)js文件的可以復(fù)用的模塊。
[0006]現(xiàn)有技術(shù)的問題在于為了實現(xiàn)java script原本不具備的模塊化功能,需要對用戶編寫的java script腳本進行封裝和改寫,使之符合模塊化的規(guī)范,以便作為可以隨意調(diào)用的模塊。額外的代碼和修改會增加程序的復(fù)雜程度,并且封裝和加載的邏輯有可能對程序帶來不可預(yù)計和不可控制的影響。不僅增加了代碼的編寫難度,同時以會給原有的編寫的代碼帶來兼容性問題。
[0007]另外一個問題是模塊化的動態(tài)加載會造成調(diào)試的困難。首先代碼的加載順序不再受控制,由于的加載機制對于依賴文件的加載順序的控制是不同的,對于一些需要加載完成后調(diào)用或者觸發(fā)的程序,必須額外考慮加載順序的問題。其次為了使代碼符合模塊化所進行的改寫會改變程序內(nèi)變量和函數(shù)的作用域,在調(diào)試時錯誤信息將變得難以追蹤。

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

[0008]本發(fā)明針對以上情況提出了一種適應(yīng)目前互聯(lián)網(wǎng)中java script文件越來越高的復(fù)雜程度、能夠提供完成繁瑣的開發(fā)調(diào)試工作的java script動態(tài)合并服務(wù)器。
[0009]本發(fā)明所涉及的java script動態(tài)合并服務(wù)器通過配置文件和請求的不同參數(shù),動態(tài)的將存儲于后臺的多個java scripts文件組合、壓縮成一個java script文件,并將其返回;
[0010]該java script動態(tài)合并服務(wù)器的架構(gòu)包括http文件服務(wù)器、目標文件、目標文件參數(shù)、配置文件、源文件、文件分析器;其中:
[0011]http文件服務(wù)器:負責接收對java script文件的http請求,針對每個請求的目標文件和相應(yīng)參數(shù),向文件分析器發(fā)送文件合并的請求,并將合并好的結(jié)果文件緩存并返回;
[0012]目標文件:目標文件指客戶端所希望請求的javascript文件,以.js為結(jié)尾的文件名為唯一標識,客戶端通過url請求目標文件;
[0013]目標文件參數(shù):客戶端在請求目標文件的url內(nèi)可以帶上附加的參數(shù),用于指明請求文件的版本,壓縮狀態(tài);
[0014]配置文件:配置文件包括源配置文件和目標配置文件,兩種配置文件均為JSON格式文件;
[0015]源文件:源文件是組成目標的單個java script文件,每個目標文件將由一個或多個源文件組合而成;源文件存儲于系統(tǒng)的文件系統(tǒng)中,并且需要在源配置文件中聲明,只用在原配置文件中聲明使用的源文件才能被用于組合成目標文件;
[0016]文件分析器:文件分析器是服務(wù)器的核心組件,負責接收http文件服務(wù)器的指令并根據(jù)配置文件讀取所需的源文件,并將其合并成目標文件后,返回給客戶端。
[0017]其中源配置文件:源配置文件作為一個名為source, js的文本文件,里面定義系統(tǒng)中可用的源文件ID、版本和位置信息;自由在源配置文件中注冊過的源文件才能被系統(tǒng)用來組合成目標文件。
[0018]在該源配置文件中,每一個源文件的id是唯一的,其對應(yīng)的是存儲與系統(tǒng)中的一個源文件,而且id不需要與文件名相同。
[0019]其中目標配置文件:目標配置文件是針對每一個想要訪問的目標java script文件的配置文件,可以有多個,每一個目標文件對應(yīng)一個目標配置文件,目標配置文件與目標文件同名,是以.js為結(jié)尾的文本文件;
[0020]該目標配置文件包含版本信息和源文件配置,版本信息是指對于同一個目標文件,可以有多個不同的版本,通過版本號進行區(qū)分;而源文件配置是指用于指明目標文件由那些源文件構(gòu)成,在配置文件中指明的是源文件的id,而且必須是在源配置文件中存在的id;每個版本的目標文件的源文件配置是獨立的,而且每個源文件都可以指定其版本。
[0021]客戶端在請求目標文件時附帶的參數(shù)遵循標準的url參數(shù)規(guī)則,以“ ? ”開始,使用key = value的形式,并用“&”作為多個參數(shù)的分隔。
[0022]該javascript動態(tài)合并服務(wù)器的工作過程包含以下步驟:
[0023]1、客戶端發(fā)送.js文件請求:客戶端向java script動態(tài)合并服務(wù)器發(fā)送一個請求,文件名為XX.js,并附帶兩個參數(shù);
[0024]2、http服務(wù)器解析請求及參數(shù):http文件服務(wù)器接收到請求后,會查找本地緩存,如果能在本地緩存找到符合要求的文件,將直接返回該文件;若無法在本地緩存中找到符合要求的文件,則將請求的XX.js和兩個參數(shù)發(fā)送給文件分析器;
[0025]3、文件解析器查找對應(yīng)的目標配置文件:文件分析器解析接收到的,從http服務(wù)器發(fā)來的請求,解析后會查找名為XX.js的配置文件,若找不到相應(yīng)的配置文件,則返回一個404錯誤;若找到相應(yīng)的配置文件后則進行解析,得到組成該目標文件的源文件id列表,列表的順序與配置文件中的id順序一致;
[0026]4、根據(jù)要求將需要的源文件組裝、壓縮成目標文件:文件分析器查找到源配置文件,根據(jù)上一步得到的id列表,依次讀取指定的源文件,并根據(jù)參數(shù)的要求,將所有的源文件合并為一個文件,并寫入本地緩存,緩存文件的命名方式為name_key_value ;
[0027]5、http服務(wù)器返回.js文件:生成文件之后,系統(tǒng)將生成的文件返回給客戶端,整個請求過程完成。
[0028]對于客戶端來說,調(diào)用java script文件的方式與傳統(tǒng)的文件服務(wù)器沒有不同,都是通過指定的URL地址請求指定的java script文件。
[0029]對于開發(fā)人員來說,多個自定義的javas cript文件的劃分及組合帶來了極大的自由和便利,而且本發(fā)明的使用門檻很低,沒有陡峭的學(xué)習(xí)曲線,使系統(tǒng)的java script開發(fā)從設(shè)計到編碼階段的流程都清晰可控,在開發(fā)后期的修改和debug階段也會給開發(fā)人員會帶來很大的便利。
【【專利附圖】

【附圖說明】】
[0030]圖1是本發(fā)明javascript動態(tài)合并服務(wù)器的工作過程的流程圖;
【【具體實施方式】】
[0031]下面將結(jié)合本發(fā)明附圖和【具體實施方式】對本發(fā)明java script動態(tài)合并服務(wù)器及其工作過程進行進一步的詳細說明。
[0032]本發(fā)明所涉及的java script動態(tài)合并服務(wù)器通過配置文件和請求的不同參數(shù),動態(tài)的將存儲于后臺的多個java scripts文件組合、壓縮成一個java script文件,并將其返回;
[0033]該java script動態(tài)合并服務(wù)器的架構(gòu)包括http文件服務(wù)器、目標文件、目標文件參數(shù)、配置文件、源文件、文件分析器;其中:
[0034]http文件服務(wù)器:負責接收對java script文件的http請求,針對每個請求的目標文件和相應(yīng)參數(shù),向文件分析器發(fā)送文件合并的請求,并將合并好的結(jié)果文件緩存并返回;
[0035]目標文件:目標文件指客戶端所希望請求的javascript文件,以.js為結(jié)尾的文件名為唯一標識,客戶端通過url請求目標文件;
[0036]目標文件參數(shù):客戶端在請求目標文件的url內(nèi)可以帶上附加的參數(shù),用于指明請求文件的版本,壓縮狀態(tài);
[0037]配置文件:配置文件包括源配置文件和目標配置文件,兩種配置文件均為JSON格式文件;
[0038]源文件:源文件是組成目標的單個java script文件,每個目標文件將由一個或多個源文件組合而成;源文件存儲于系統(tǒng)的文件系統(tǒng)中,并且需要在源配置文件中聲明,只用在原配置文件中聲明使用的源文件才能被用于組合成目標文件;
[0039]文件分析器:文件分析器是服務(wù)器的核心組件,負責接收http文件服務(wù)器的指令并根據(jù)配置文件讀取所需的源文件,并將其合并成目標文件后,返回給客戶端。
[0040]其中源配置文件:源配置文件作為一個名為source, js的文本文件,里面定義系統(tǒng)中可用的源文件ID、版本和位置信息;自由在源配置文件中注冊過的源文件才能被系統(tǒng)用來組合成目標文件。
[0041]在該源配置文件中,每一個源文件的id是唯一的,其對應(yīng)的是存儲與系統(tǒng)中的一個源文件,而且id不需要與文件名相同。
[0042]其中目標配置文件:目標配置文件是針對每一個想要訪問的目標java script文件的配置文件,可以有多個,每一個目標文件對應(yīng)一個目標配置文件,目標配置文件與目標文件同名,是以.js為結(jié)尾的文本文件;
[0043]該目標配置文件包含版本信息和源文件配置,版本信息是指對于同一個目標文件,可以有多個不同的版本,通過版本號進行區(qū)分;而源文件配置是指用于指明目標文件由那些源文件構(gòu)成,在配置文件中指明的是源文件的id,而且必須是在源配置文件中存在的id;每個版本的目標文件的源文件配置是獨立的,而且每個源文件都可以指定其版本。
[0044]客戶端在請求目標文件時附帶的參數(shù)遵循標準的url參數(shù)規(guī)則,以“ ? ”開始,使用key = value的形式,并用“&”作為多個參數(shù)的分隔。
[0045]該javascript動態(tài)合并服務(wù)器的工作過程包含以下步驟:
[0046]1、客戶端發(fā)送.js文件請求:客戶端向java script動態(tài)合并服務(wù)器發(fā)送一個請求,文件名為XX.js,并附帶兩個參數(shù);
[0047]2、http服務(wù)器解析請求及參數(shù):http文件服務(wù)器接收到請求后,會查找本地緩存,如果能在本地緩存找到符合要求的文件,將直接返回該文件;若無法在本地緩存中找到符合要求的文件,則將請求的XX.js和兩個參數(shù)發(fā)送給文件分析器;
[0048]3、文件解析器查找對應(yīng)的目標配置文件:文件分析器解析接收到的,從http服務(wù)器發(fā)來的請求,解析后會查找名為XX.js的配置文件,若找不到相應(yīng)的配置文件,則返回一個404錯誤;若找到相應(yīng)的配置文件后則進行解析,得到組成該目標文件的源文件id列表,列表的順序與配置文件中的id順序一致;
[0049]4、根據(jù)要求將需要的源文件組裝、壓縮成目標文件:文件分析器查找到源配置文件,根據(jù)上一步得到的id列表,依次讀取指定的源文件,并根據(jù)參數(shù)的要求,將所有的源文件合并為一個文件,并寫入本地緩存,緩存文件的命名方式為name_key_value ;
[0050]5、http服務(wù)器返回.js文件:生成文件之后,系統(tǒng)將生成的文件返回給客戶端,整個請求過程完成。
[0051]對于客戶端來說,調(diào)用java script文件的方式與傳統(tǒng)的文件服務(wù)器沒有不同,都是通過指定的URL地址請求指定的java script文件。
[0052]對于開發(fā)人員來說,多個自定義的javas cript文件的劃分及組合帶來了極大的自由和便利,而且本發(fā)明的使用門檻很低,沒有陡峭的學(xué)習(xí)曲線,使系統(tǒng)的java script開發(fā)從設(shè)計到編碼階段的流程都清晰可控,在開發(fā)后期的修改和debug階段也會給開發(fā)人員會帶來很大的便利。
[0053]以上所述,僅是本發(fā)明較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明以較佳實施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當可利用上述揭示的技術(shù)內(nèi)容做出些許變更或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明技術(shù)是指對以上實施例所作的任何簡單修改、等同變化與修飾,均屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【權(quán)利要求】
1.一種java script動態(tài)合并服務(wù)器,該服務(wù)器通過配置文件和請求的不同參數(shù),動態(tài)的將存儲于后臺的多個java scripts文件組合、壓縮成一個java script文件,并將其返回script動態(tài)合并服務(wù)器的架構(gòu)包括http文件服務(wù)器、目標文件、目標文件參數(shù)、配置文件、源文件、文件分析器;其中: http文件服務(wù)器:負責接收對java script文件的http請求,針對每個請求的目標文件和相應(yīng)參數(shù),向文件分析器發(fā)送文件合并的請求,并將合并好的結(jié)果文件緩存并返回; 目標文件:目標文件指客戶端所希望請求的java script文件,以.js為結(jié)尾的文件名為唯一標識,客戶端通過url請求目標文件; 目標文件參數(shù):客戶端在請求目標文件的url內(nèi)可以帶上附加的參數(shù),用于指明請求文件的版本,壓縮狀態(tài); 配置文件:配置文件包括源配置文件和目標配置文件,兩種配置文件均為JSON格式文件; 源文件:源文件是組成目標的單個java script文件,每個目標文件將由一個或多個源文件組合而成;源文件存儲于系統(tǒng)的文件系統(tǒng)中,并且需要在源配置文件中聲明,只用在原配置文件中聲明使用的源文件才能被用于組合成目標文件; 文件分析器:文件分析器是服務(wù)器的核心組件,負責接收http文件服務(wù)器的指令并根據(jù)配置文件讀取所需的源文件,并將其合并成目標文件后,返回給客戶端。
2.根據(jù)權(quán)利要求1所述javascript動態(tài)合并服務(wù)器,其特征在于,該源配置文件作為一個名為source, js的文本文件,里面定義系統(tǒng)中可用的源文件ID、版本和位置信息;自由在源配置文件中注冊過的源文件才能被系統(tǒng)用來組合成目標文件。
3.根據(jù)權(quán)利要求2所述javascript動態(tài)合并服務(wù)器,其特征在于,在該源配置文件中,每一個源文件的id是唯一的,其對應(yīng)的是存儲與系統(tǒng)中的一個源文件,而且id不需要與文件名相同。
4.根據(jù)權(quán)利要求1所述javascript動態(tài)合并服務(wù)器,其特征在于,客戶端在請求目標文件時附帶的參數(shù)遵循標準的url參數(shù)規(guī)則,以“?”開始,使用key = value的形式,并用“&”作為多個參數(shù)的分隔。
5.根據(jù)權(quán)利要求1所述javascript動態(tài)合并服務(wù)器,其特征在于,其中目標配置文件是針對每一個想要訪問的目標java script文件的配置文件,可以有多個,每一個目標文件對應(yīng)一個目標配置文件,目標配置文件與目標文件同名,是以.js為結(jié)尾的文本文件。
6.根據(jù)權(quán)利要求5所述javascript動態(tài)合并服務(wù)器,其特征在于,該目標配置文件包含版本信息和源文件配置,版本信息是指對于同一個目標文件,可以有多個不同的版本,通過版本號進行區(qū)分;而源文件配置是指用于指明目標文件由那些源文件構(gòu)成,在配置文件中指明的是源文件的id,而且必須是在源配置文件中存在的id ;每個版本的目標文件的源文件配置是獨立的,而且每個源文件都可以指定其版本。
7.根據(jù)權(quán)利要求1所述javascript動態(tài)合并服務(wù)器的工作過程包括以下步驟: 1)、客戶端發(fā)送.js文件請求:客戶端向javascript動態(tài)合并服務(wù)器發(fā)送一個請求,文件名為XX.js,并附帶兩個參數(shù); 2)、http服務(wù)器解析請求及參數(shù):http文件服務(wù)器接收到請求后,會查找本地緩存,如果能在本地緩存找到符合要求的文件,將直接返回該文件;若無法在本地緩存中找到符合要求的文件,則將請求的XX.js和兩個參數(shù)發(fā)送給文件分析器; 3)、文件解析器查找對應(yīng)的目標配置文件:文件分析器解析接收到的,從http服務(wù)器發(fā)來的請求,解析后會查找名為XX.js的配置文件,若找不到相應(yīng)的配置文件,則返回一個404錯誤;若找到相應(yīng)的配置文件后則進行解析,得到組成該目標文件的源文件id列表,列表的順序與配置文件中的id順序一致; 4)、根據(jù)要求將需要的源文件組裝、壓縮成目標文件:文件分析器查找到源配置文件,根據(jù)上一步得到的id列表,依次讀取指定的源文件,并根據(jù)參數(shù)的要求,將所有的源文件合并為一個文件,并寫入本地緩存,緩存文件的命名方式為name_key_value ; 5)、http服務(wù)器返回.js文件:生成文件之后,系統(tǒng)將生成的文件返回給客戶端,整個請求過程完成。
【文檔編號】H04L29/08GK104283947SQ201410508935
【公開日】2015年1月14日 申請日期:2014年9月28日 優(yōu)先權(quán)日:2014年9月28日
【發(fā)明者】須成忠, 林棟
申請人:深圳市中科無軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
安阳市| 余干县| 新泰市| 淮安市| 宁乡县| 邻水| 富源县| 新田县| 威信县| 讷河市| 铁岭县| 恩施市| 北碚区| 四平市| 库车县| 星子县| 盘锦市| 平舆县| 繁昌县| 德令哈市| 香河县| 河北区| 高雄市| 雷州市| 青阳县| 遂溪县| 呼和浩特市| 龙南县| 榆林市| 平阳县| 上犹县| 剑川县| 福贡县| 界首市| 佛教| 新兴县| 来宾市| 台东县| 东明县| 武强县| 舟山市|