專利名稱:用于asp.net網頁中下載優化的html資源的可配置動態組合的制作方法
技術領域:
本申請涉及一種用于優化網頁內容資源的遞送的機制。更具體地,涉及通過可配置動態組合HTML資源來優化網頁中下載的資源。
背景技術:
背景和相關技術計算機和計算系統已經影響了現代生活的幾乎每個方面。計算機通常在工作、消遣、保健、運輸、娛樂、家政管理等中都有涉獵。而且,通過一計算系統經由網絡與其它計算系統互連的能力,計算系統的功能性能得到加強。網絡連接可以包括但不局限于通過有線或無線以太網的連接、蜂窩連接或甚至通過串行、并行、USB或其它連接的計算機到計算機的連接。這些連接允許計算系統訪問其它計算系統的服務,并迅速有效地從其它計算系統接收應用程序數據。互連的計算機允許計算機向其它計算機提供服務。例如,web服務器可以向客戶機提供內容。具體而言,因特網客戶機,例如可從華盛頓州的雷德蒙市的微軟公司獲得的 Internet Explorer ,可以被用于訪問web服務器。web服務器可以提供定義應如何顯示網頁的HTML代碼。HTML代碼可以包括用于向因特網客戶機處的用戶顯示文本的文本信息。HTML代碼還可以指定應如何顯示所述文本。HTML代碼還可以定義應該如何在網頁中顯示圖像,包括如圖像的大小和相對于其它內容的定位這樣的信息。HTML代碼典型地包括對圖像本身的位置的引用,例如web服務器上的位置或存儲該圖像的一些其它內容儲存庫。web服務器或其它源還可以提供可執行腳本,例如可在因特網客戶機處執行的用于增強內容顯示的Java腳本。同樣,HTML代碼將包括對所述腳本的位置的引用。而且,web 服務器或其它源可以遞送具有有關應如何布局和/或顯示網頁的附加概要信息的樣式表。許多現代的web服務器被設計成動態提供內容。具體而言,web服務器包括當網頁客戶機請求內容時動態生成HTML的服務器應用程序,而不是簡單地存儲HTML內容頁面。 借助這種方法,可為客戶機定制返回的網頁。例如,可能期望向位于華盛頓州的雷德蒙市的因特網客戶機遞送與位于猶他州的鹽湖城市的因特網客戶不同的廣告內容。開發者可以生成能夠在web服務器處執行的腳本源代碼,它可包括用于確定因特網客戶機的位置(或許多其它變量中的任意一個或多個)并基于所確定的位置動態生成HTML內容的功能。這種定制HTML內容隨后可以被發送給因特網客戶機。如所述的,HTML頁面經常引用許多其它資源。例如,HTML頁面可以引用當顯示網頁時應該被包括的幾個不同的圖形圖像。為了獲得這些圖形圖像,因特網客戶機通常必須分別請求每個圖像。每個圖像請求具有會話開銷,這導致并不包括圖像本身的一部分的任意實際圖像數據的網絡通信量。這樣,請求的圖像越多,將導致發送的開銷數據越多,從而導致對網絡帶寬的損耗。在此要求保護的主題不 限于解決任何缺點或僅在諸如上述環境中操作的各個實施例。相反,提供該背景僅用以示出在其中可實踐在此描述的部分實施例的一個示例性技術領域。
發明內容
在包括網頁服務器的計算環境中實現一個實施例。該實施例包括一種用于優化網頁內容資源的遞送的方法。該方法包括引用腳本源代碼以標識要遞送到網頁客戶機的網頁內容資源。引用配置文件以確定所標識的資源應該與附加資源相組合并作為單個文件發送到網頁客戶機。所標識的資源與附加資源一起組合成單個組合的文件。該單個文件被遞送到網頁客戶機。提供本發明內容是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。本發明內容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。另外的特征和優點將在以下的描述中闡述,并且部分可從該描述中顯而易見,或者可以從此處的教示實踐中習得。本發明的特征和優點可以通過在所附權利要求中特別指出的手段和組合來實現并獲取。本發明的特征將從以下描述和所附權利要求書中變得完全顯而易見,或者可通過如下所述對本發明的實踐而獲知。
為了描述能夠獲得上述和其他優點和特征的方式,將通過參考附圖中示出的各具體實施例來呈現對以上簡述的主題的更為具體的描述。應該理解,這些附圖僅描繪了各典型實施例,因此其不應被認為是對范圍的限制,各實施例將通過使用附圖用附加附加特征和細節來描述并解釋,在附圖中圖1示出將網頁內容從網頁服務器遞送到網頁客戶機的環境。圖2示出一種用于優化網頁內容資源的遞送的方法。
具體實施例方式實施例針對使用配置數據結構,例如配置文件,標識應該彼此組合成單個文件的資源集。當這些資源中的一個資源應該被遞送到客戶機瀏覽器時,咨詢配置文件以確定該資源被標識為應該與其它資源組合成單個文件的那個資源。隨后,web服務器組合資源,可選地緩存所組合的資源并將資源作為單個文件返回給客戶機瀏覽器。客戶機瀏覽器也可以接收HTML代碼(在一些實施例中通過使用層疊樣式表信息(CSS)樣式信息),所述HTML code指示應該使用所述單個文件中的哪個部分來在客戶機瀏覽器的顯示處適當呈現網頁。網頁開發者經常使用用于網頁內容框架(framework)的服務器側腳本進行編程。 例如,可從華盛頓州的雷德蒙市的微軟公司獲得的ASP.net 框架是一種能用于向web客戶機動態提供內容的框架。具體而言,網頁開發者可以編程隨后在運行框架的服務器處執行的腳本。作為執行腳本的結果,框架生成可以被提供給web客戶機的HTML代碼,在該web 客戶機處,可使用該HTML代碼來顯示網頁。
此處所述的一些實施例使用具有擴展功能的框架。具體而言,這種框架包括增強的庫,所述庫允許并指導配置文件的使用,所述配置文件方便了框架將多個資源組合成單個文件并方便了改變所生成的HTML內容的形式。可以將該單個文件下載到web客戶機。改變的HTML包括引用,例如CSS引用,以便訪問和/或顯示該單個文件的合適部分以使得網頁以網頁開發者最初希望的方式被顯示。一示例實施例在圖1中示出。圖1示出允許執行由網頁開發者生成的服務器腳本 106的實施例。服務器腳本106可由網頁開發者創建并由框架用于動態創建HTML網頁文檔。圖1示 出在客戶機104處呈現的網頁108。根據使用腳本創建并由客戶機104從服務器106接收的HTML文檔110中所描述的布局來在客戶機104處呈現網頁108。基于由網頁開發者所創建的服務器腳本106的執行,由服務器模塊112來創建 HTML文檔110。在示例的實例中,服務器模塊112是在配置文件114存在并被適當定義的情況下可以使用該配置文件的專用模塊。配置文件114定義了應該被一起組合成單個資源或文件的各個資源。例如,當網頁開發者創建服務器腳本106時,網頁開發者可以指示應該在網頁108中顯示各種圖像116、118、120和122,并指示應如何顯示所述圖像116、118、120 和122 (例如布局、大小、分辨率等等)。在服務器102處(例如由開發者或其他個人或由服務器處的自動化軟件)可以作出將圖像116、118、120和122作為單個圖像遞送更加有效以節省網絡帶寬的判斷。這樣,配置文件114可以包括應該將圖像116、118、120和122組合成單個圖像文件的指示。注意,這個判斷和對圖像文件的修改可以在通過網頁開發者的服務器腳本106的創建范圍之外來完成。可以實現實施例,在這些實施例中,獨立于配置文件 114中所定義的任意知識來創建服務器腳本106。而且,在不需要修改所述服務器腳本106 的任何部分的情況下來修改配置文件114。由于服務器腳本106獨立于配置文件114,服務器腳本106可以在不需要被配置為使用配置文件114的那些服務器上運行。然而,返回到當前實例的服務器102的描述,客戶機104可以發送對網頁108的請求124。作為響應,服務器使用服務器模塊112訪問服務器腳本106。服務器腳本106包括圖像116、118、120和122應該被包括在網頁108中的指示。服務器模塊112咨詢配置文件114并且注意到配置文件114指示圖像116、118、120 和122應該被組合成單個圖像文件。因此,服務器模塊112將圖像116、118、120和122 — 起縫合成單個圖像126。單個圖像126包括4個部分116’、118’、120’和122’。這4個部分中的每個部分可以由它們的坐標來標識。例如,假設圖像116、118、120和122中的每個圖像是250像素寬χ 250像素長。組合的圖像就是250像素寬χ 1000像素長。對于矩形,圖像坐標通常被表示為右上和左下坐標。這樣,如在實例中所示,第一部分116’具有坐標249,249。第二部分118,具有坐標249,499。第三部分120,具有坐標249,749。第四部分122,具有坐標 249,999.在一些實施例中,單個圖像126可以在緩存128中進行緩存。服務器模塊112還創建HTML文檔110來基于坐標顯示這些部分。例如,服務器模塊將例如通過使用如CSS來創建HTML文檔110,所述CSS通過坐標引用圖像,引用圖像126 和部分116’的坐標249,249,而不是創建引用圖像116的HTML文檔。將在HTML文檔中完成對剩余的部分120’、122’和124’的類似的引用。可以在緩存128 (或另一緩存)處緩存 HTML 文檔 110。
當在客戶機104處接收HTML文檔110,代替請求各個圖像116、118、120和122中的每個圖像來顯示網頁,客戶機請求在HTML文檔110中所指示的單個圖像126。隨后,在客戶機104處顯示的網頁108中合適地呈現圖像部分116’、118’、120’和122’。在服務器,在從配置文件讀出組合的資源之后,可以緩存所述組合的資源,使得對被組合成組合的文件的任意資源的后續請求不需要服務器再次重新創建組合 的文件,重新創建是昂貴的操作。例如,用戶1請求資源,服務器腳本創建所需的組合的文件,并且隨后將組合的文件存儲在服務器上的存儲器中。當用戶2請求相同網頁時,服務器已經完成了對作為該網頁的部分的圖像的組合的工作。因此,服務器可以簡單地從臨時緩存中檢索新組合的文件并將該組合的文件回供給用戶2,而不是重新創建該組合的文件。在一些實施例中,服務器側緩存可以是日期/時間標記的,這樣,任何對服務器側的配置文件或組成該組合的文件的任意單獨的圖像文件的改變都將強制服務器緩存被刷新,并且隨后可以創建、存儲新版本的組合的圖像,并將其返回給瀏覽器客戶機。一旦將組合的資源文件下載到瀏覽器客戶機,該組合的資源文件可以被本地緩存,使得任意后續的對相同網頁的請求或對需要作為組合的資源的部分的任意相同資源的其它網頁的請求都不需要請求這些資源。它們將改為只需從服務器返回的HTML/CSS中取得一組坐標并使用組合的圖像文件的本地緩存的副本。還可以對其它資源進行相似的處理。例如,可以將Java腳本或CSS樣式文件/ 資源組合成服務器102處或來自某一其它儲存庫的單個資源。可以在服務器102處創建 HTMLl 10以引用單個Java腳本文件(包括來自幾個Java腳本文件的內容)或單個CSS樣式表文件(包括來自幾個CSS樣式表文件的內容)中的部分。以下討論現在涉及多種方法以及可以執行的方法動作。雖然用特定次序討論或用以特定次序發生的流程圖示出了各個方法動作,但除非明確規定否則不需要特定次序,或因為一動作依賴于另一動作在執行該動作之前完成而需要特定次序。圖2示出可以在包括網頁服務器的計算環境中實現的方法200。該方法包括用于優化遞送網頁內容資源的動作。該方法包括引用腳本源代碼以標識要遞送到網頁客戶機的網頁內容資源(動作202)。例如,圖1示出由網頁開發者創建并部署到服務器102的腳本 106。服務器腳本可以標識資源,例如圖像、客戶機側腳本、樣式表等。這些資源中的一個資源可以被標識。方法200還包括引用配置文件以確定所標識的資源應該與附加資源相組合并作為單個文件發送到網頁客戶機(動作204)。例如,配置文件114可以包括應該組合成單個文件的資源的指示。在圖1所示例的實例中,配置文件114指示應該將圖像116、118、120 和122組合成單個文件126,該單個文件126是將圖像116、118、120和122縫合在一起的圖像文件。方法200還包括將所標識的資源和附加資源組合成單個組合的文件(動作206)。 如所述并且先前所示出地,示出了將圖像116、118、120和122縫合成單個文件的實例。方法200還包括將單個文件遞送到網頁客戶機(動作208)。圖1示出將單個文件 126遞送到網頁客戶機104的實例。如圖1所示,在所標識的資源和附加資源都是圖形圖像時,可實現方法200的實施例。或者如圖2所示,在所標識的資源和附加資源都是樣式表數據時,可實現方法200的實施例。另一替換實施例在圖3中示出,其中,所標識的資源和附加資源都是Java腳本客戶機代碼數據。方法200 還包括確定請求將網頁內容資源遞送到網頁客戶機的URI。在該實施例的一些版本中,依賴于所確定的URI來確定所標識的資源應該與附加資源組合在一起并作為單個文件發送給網頁客戶機。例如,配置文件114可以指定一資源與不同的資源組合在一起,其中,這種組合依賴于參考的URI。例如,可以創建網頁108的不同版本。例如,鄰居網站可以具有描述住在房子724(URI :“/HOUSe724.aSpX”)的家庭的一個頁面,并具有一組該房子所有成員(包括與該家庭生活在一起的狗)的圖像(包括圖像116、118、120和122)。該鄰居網站可以具有另一頁面(URI "/NeighborhoodDogs. aspx”),該頁面描述了鄰居中的所有的狗,并具有僅將鄰居中的所有的狗(包括122和其它未示出的圖像)縫合在一起的圖像文件,該圖像文件不包括人,因為該頁面并不需要人。實施例可以包括組合的資源,該組合的資源包括多個網頁的圖像(或樣式表或腳本)。當該文件由瀏覽器客戶機緩存時,任何對相同頁面或需要這些相同資源的相同站點上的任何其它頁面的回訪可隨后引用該組合的資源/圖像的的本地緩存的副本。服務器將簡單地發出新HTML/CSS坐標來僅顯示組合資源的所需部分,這樣,使得瀏覽器無需跨多個頁面對這些相同資源進行新的請求。方法200可實現為進一步包括在不修改腳本源代碼的情況下修改配置文件。具體而言,腳本源代碼不依賴于配置文件中所包含的東西。該配置文件可以指示所有資源中或多或少的資源(或一種類型的資源)可以被組合。當少于所有資源的資源被組合時,可以單獨在HTML 110中指定其它資源,或在不同的單個文件的不同資源集中組合其它資源。方法200還包括基于服務器腳本自動創建HTML文檔。服務器腳本可以包括直接對網頁資源的引用,而且,創建HTML文檔可以包括將直接對網頁資源的所述引用變換成對單個文件的引用。例如,服務器腳本可以直接引用圖像116,但創建的HTML文檔包括到圖像126的引用。如所述地,單個文件包括來自多個文件的內容。HTML還可以標識單個文件中對應于該網頁資源的部分。例如,HTML文檔110可以標識部分116’ (例如通過標識坐標 249,249).方法還包括將HTML文檔遞送給網頁客戶機。如圖1所示,可以在服務器102的緩存128中創建HTML文檔。可以實現方法200,其中所述方法作為從客戶機接收對網頁的請求的結果被執行。 例如,客戶機104可以使用客戶機104處的瀏覽器請求網頁108。這會引起基于配置文件 114中的信息生成單個文件126以及基于配置文件114和服務器腳本106來創建HTML文檔 110。實施例可以包括為對網頁的后續請求緩存所述單個組合的文件。具體而言,在引起創建單個文件126的對網頁的第一請求之后,對網頁108和相關聯的資源的后續請求可以通過返回單個文件126的緩存的副本來實現。此外,該方法可以由包括一個或多個處理器和諸如計算機存儲器等計算機可讀介質的計算機系統來實施。具體而言,計算機存儲器可以存儲計算機可執行指令,計算機可執行指令在由一個或多個處理器執行時使得執行各種功能,如在各實施方式中所述的那些動作。本發明的各實施例可以包括或利用包含計算機硬件的專用或通用計算機,這將在下文中更詳細地討論。本發明范圍內的各實施例還包括用于承載或存儲計算機可執行指令和/或數據結構的物理和其他計算機可讀介質。這樣的計算機可讀介質可以是可由通用或專用計算機系統訪問的任何可用介質。存儲計算機可執行指令的計算機可讀介質是物理存儲介質。承載計算機可執行指令的計算機可讀介質是傳輸介質。由此,作為示例而非限制, 本發明的各實施例可包括至少兩種完全不同的計算機可讀介質物理計算機可讀存儲介質和傳輸計算機可讀介質。物理計算機存儲介質包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲(如CD、DVD
等)、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執行指令或數據結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的任何其他介質。這些介質中的每個介質也是非暫態計算機可讀介質的實例。 “網絡”被定義為允許在計算機系統和/或模塊和/或其他電子設備之間傳輸電子數據的一個或多個數據鏈路。當信息通過網絡或另一通信連接(硬連線、無線、或硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當地視為傳輸介質。傳輸介質可包括可用于攜帶計算機可執行指令或數據結構形式的所需程序代碼裝置并可由通用或專用計算機訪問的網絡和/或數據鏈路。以上介質的組合也被包括在計算機可讀介質的范圍內。此外,在到達各種計算機系統組件之后,計算機可執行指令或數據結構形式的程序代碼裝置可從傳輸計算機可讀介質自動轉移到物理計算機可讀存儲介質(或者相反)。 例如,通過網絡或數據鏈路接收到的計算機可執行指令或數據結構可被緩存在網絡接口模塊(例如,“NIC”)內的RAM中,然后最終被傳送到計算機系統RAM和/或計算機系統處的較不易失性的計算機可讀物理存儲介質。因此,計算機可讀物理存儲介質可被包括在同樣 (或甚至主要)利用傳輸介質的計算機系統組件中。計算機可執行指令例如包括,使通用計算機、專用計算機、或專用處理設備執行某一功能或某組功能的指令和數據。計算機可執行指令可以是例如二進制代碼、諸如匯編語言等中間格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解的是,所附權利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現權利要求的示例形式而公開的。本領域的技術人員將理解,本發明可以在具有許多類型的計算機系統配置的網絡計算環境中實踐,這些計算機系統配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統、基于微處理器的或可編程消費電子設備、網絡PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發明也可以在其中通過網絡鏈接(或者通過硬連線數據鏈路、無線數據鏈路,或者通過硬連線和無線數據鏈路的組合)的本地和遠程計算機系統兩者都執行任務的分布式系統環境中實踐。在分布式系統環境中,程序模塊可以位于本地和遠程存儲器存儲設備中。本發明可具體化為其他具體形式而不背離其精神或特征。所描述的實施例在所有方面都應被認為僅是說明性而非限制性的。從而,本發明的范圍由所附權利要求書而非前述描述指示。落入權利要求書的等效方案的含義和范圍內的所有改變應被權利要求書的范圍所涵蓋。
權利要求
1.在包括網頁服務器的計算環境中,一種優化網頁內容資源遞送的方法,所述方法包括引用(202)腳本源代碼(106)以標識要遞送給網頁客戶機的網頁內容資源(116、118、 120 和 122);引用(204)配置文件(114)以確定應該將所標識的資源(116、118、120和122)與附加資源(116、118、120和122)組合并作為單個文件(126)發送給網頁客戶機(104);將所標識的資源(116、118、120和122)與附加資源(116、118、120和122)組合(206) 成單個組合的文件(126);以及將單個文件(126)遞送(208)到網頁客戶機。
2.如權利要求1所述的方法,其特征在于,所標識的資源與附加資源都是圖形圖像。
3.如權利要求1所述的方法,其特征在于,所標識的資源與附加資源都是樣式表數據。
4.如權利要求1所述的方法,其特征在于,所標識的資源與附加資源都是Java腳本客戶機代碼數據。
5.如權利要求1所述的方法,其特征在于,還包括確定請求將網頁內容資源遞送到網頁客戶機的URI,其中確定應該將所標識的資源與附加資源組合并作為單個文件發送給網頁客戶機是依賴于所確定的URI的。
6.如權利要求1所述的方法,其特征在于,還包括在不修改所述腳本源代碼的情況下,修改所述配置文件。
7.如權利要求1所述的方法,其特征在于,還包括基于服務器腳本自動創建HTML文檔,其中,服務器腳本包括直接對所述網頁資源的引用,而創建HTML文檔包括將直接對所述網頁資源的所述引用變換成對所述單個文件的引用,其中,單個文件包括來自多個文件的內容,并標識對應于所述網頁資源的所述單個文件的一部分,以及將所述HTML文檔遞送給所述網頁客戶機。
8.如權利要求7所述的方法,其特征在于,還包括在服務器上對所述HTML文檔進行緩存。
9.如權利要求1所述的方法,其特征在于,其中所述方法作為從客戶機接收對網頁的請求的結果被執行。
10.如權利要求9所述的方法,其特征在于,還包括緩存所述單個組合的文件以用于對所述網頁的后續請求。
11.如權利要求10所述的方法,其特征在于,還包括從客戶機接收對所標識的資源或所述附加資源中的一個資源的后續請求,并作為結果,通過從所述緩存中提供所述單個組合的文件來服務所述請求。
12.在包括網頁服務器的計算環境中,一種在其上存儲有計算機可執行指令的計算機可讀介質,當由一個或多個處理器執行所述計算機可執行指令時,引起下述動作的執行引用(202)腳本源代碼(106)以標識要遞送給網頁客戶機的網頁內容資源(116、118、 120 和 122);引用(204)配置文件(114)以確定應該將所標識的資源(116、118、120和122)與附加資源(116、118、120和122)組合并作為單個文件(126)發送給網頁客戶機(104);將所標識的資源(116、118、120和122)與附加資源(116、118、120和122)組合(206)成單個組合的文件(126);以及將單個文件(126)遞送(208)到網頁客戶機。
13.如權利要求12所述的計算機可讀介質,其特征在于,所標識的資源與附加資源都是圖形圖像。
14.如權利要求12所述的計算機可讀介質,其特征在于,所標識的資源與附加資源都是樣式表數據。
15.如權利要求12所述的計算機可讀介質,其特征在于,所標識的資源與附加資源都是Java腳本客戶機代碼數據。
全文摘要
本申請涉及用于ASP.NET網頁中下載優化的HTML資源的可配置動態組合在包括網頁服務器的計算環境中實現一個實施例。該實施例包括一種用于優化網頁內容資源的遞送的方法。該方法包括引用腳本源代碼以標識要遞送到網頁客戶機的網頁內容資源。引用配置文件以確定所標識的資源應該與附加資源相組合并作為單個文件發送到網頁客戶機。所標識的資源與附加資源一起組合成單個組合的文件。該單個文件被遞送到網頁客戶機。
文檔編號G06F17/30GK102200995SQ20111008136
公開日2011年9月28日 申請日期2011年3月25日 優先權日2010年3月26日
發明者A·沈, B·C·布洛姆奎斯特, C·J·貝特, V·阿胡加 申請人:微軟公司