技術(shù)領(lǐng)域
本申請涉及通信技術(shù)領(lǐng)域,特別是涉及一種頁面腳本的加載方法和裝置。
背景技術(shù):
在一個基于Web的系統(tǒng)中,頁面中的JavaScript(JS)腳本、CSS(Cascading Style Sheet,級聯(lián)樣式表)腳本以及其他需要從外部文件中引入的腳本,稱之為assets文件,都需要顯示出被引用文件的URL地址。例如,引入一個JS腳本:
<script type=“text/javascript”src=http://a.tbcdn.cn/app/tc/details.js></script>
使用這種引入方式,當服務(wù)器端的JS文件更新之后,不能及時更新用戶在瀏覽器端緩存的JS,只有當用戶強制刷新頁面后,才可以從服務(wù)器端下載最新的JS,假如JS的版本發(fā)生了很大的變化,老的JS不能兼容新的頁面,就會產(chǎn)生Bug,導(dǎo)致用戶訪問該頁面出現(xiàn)障礙。
目前,為解決上述問題,可以在網(wǎng)站服務(wù)端引用JS的時候加上最新的時間戳參數(shù),如下所示:
<script type=“text/javascript”src=http://a.tbcdn.cn/app/tc/details.js?t=200910231422></script>
瀏覽器依據(jù)最新的時間戳與緩存文件的時間戳進行對比,若判斷URL已經(jīng)發(fā)生了變化,就主動請求服務(wù)器獲取最新的JS文件,從而保證用戶能夠瀏覽到正常的頁面。
以上現(xiàn)有技術(shù)中存在的問題是,每次更新JS文件都需要對時間戳進行更新,帶來很大的工作量,并且修改后的文件還要發(fā)布到線上生產(chǎn)環(huán)境才能生效,由此帶來了很大的修改、測試和發(fā)布的成本。
因此,目前需要本領(lǐng)域技術(shù)人員解決的一個技術(shù)問題就是,提供一種頁面腳本的加載機制,以減少腳本文件更新帶來的工作量。
技術(shù)實現(xiàn)要素:
本申請所要解決的技術(shù)問題是提供一種頁面腳本的加載方法,以減少腳本文件更新帶來的工作量。
本申請還提供了一種頁面腳本的加載裝置,用以保證上述方法在實際中的應(yīng)用及實現(xiàn)。
為了解決上述問題,本申請公開了一種頁面腳本的加載方法,包括:
瀏覽器判斷應(yīng)用服務(wù)器中是否存在與待加載頁面腳本的URL對應(yīng)的時間戳信息;
若瀏覽器判定應(yīng)用服務(wù)器中存在與待加載頁面腳本的URL對應(yīng)的時間戳信息,則提取所述與待加載頁面腳本的URL對應(yīng)的時間戳信息,并添加到所述待加載頁面腳本的URL中;
依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載。
優(yōu)選地,所述瀏覽器判斷應(yīng)用服務(wù)器中是否存在與待加載頁面腳本的URL對應(yīng)的時間戳信息的步驟包括:
瀏覽器判斷應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中是否包括所述待加載頁面腳本的URL,其中,所述時間戳對應(yīng)表包括頁面腳本URL和時間戳信息的對應(yīng)關(guān)系,并按照預(yù)設(shè)頻率進行更新;
若是,則判定應(yīng)用服務(wù)器中存在與待加載頁面腳本的URL對應(yīng)的時間戳信息;
若否,則判定應(yīng)用服務(wù)器中不存在與待加載頁面腳本的URL對應(yīng)的時間戳信息。
優(yōu)選地,所述方法還包括:
若瀏覽器判定應(yīng)用服務(wù)器中不存在與待加載頁面腳本的URL對應(yīng)的時間戳信息,則觸發(fā)所述應(yīng)用服務(wù)器生成所述待加載頁面腳本的時間戳信息,并將所述待加載頁面腳本的URL和時間戳信息的對應(yīng)關(guān)系添加到所述時間戳對應(yīng)表中。
優(yōu)選地,所述頁面腳本發(fā)布在腳本服務(wù)器上,并攜帶所述頁面腳本的名稱信息和發(fā)布時間。
優(yōu)選地,所述觸發(fā)應(yīng)用服務(wù)器生成所述待加載頁面腳本的時間戳信息,并將所述待加載頁面腳本的URL和時間戳信息的對應(yīng)關(guān)系添加到所述時間戳對應(yīng)表中的步驟包括:
瀏覽器向應(yīng)用服務(wù)器發(fā)送時間戳對應(yīng)表添加的請求,觸發(fā)所述應(yīng)用服務(wù)器依據(jù)請求在腳本服務(wù)器中提取所述頁面腳本的名稱信息和發(fā)布時間,并由所述頁面腳本的名稱信息和發(fā)布時間生成相應(yīng)的時間戳信息;
將所述頁面腳本URL和時間戳信息的對應(yīng)關(guān)系添加到時間戳對應(yīng)表中。
優(yōu)選地,所述依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載的步驟包括:
在瀏覽器端的緩存中搜索是否存在符合預(yù)設(shè)條件的頁面腳本,所述預(yù)設(shè)條件為,與所述添加后的頁面腳本URL具備相同URL,且兩者時間戳信息一致;
若是,則提取緩存中的頁面腳本,若否,則依據(jù)添加后的頁面腳本URL在腳本服務(wù)器提取相應(yīng)的頁面腳本;
對提取的頁面腳本進行頁面加載。
優(yōu)選地,所述應(yīng)用服務(wù)器通過以下步驟預(yù)置時間戳對應(yīng)表:
在腳本服務(wù)器提取各頁面腳本的URL、名稱信息和發(fā)布時間;
由所述名稱信息和發(fā)布時間生成對應(yīng)的頁面腳本的時間戳信息;
由所述時間戳信息和URL的對應(yīng)關(guān)系,生成時間戳對應(yīng)表,并保存在應(yīng)用服務(wù)器。
優(yōu)選地,所述應(yīng)用服務(wù)器通過以下步驟更新時間戳對應(yīng)表:
讀取時間戳對應(yīng)表,解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的IP地址;
依據(jù)所述IP地址獲取對應(yīng)的頁面腳本的發(fā)布時間;
判斷所述發(fā)布時間和時間戳信息中的時間是否一致,若否,則按照所述發(fā)布時間對所述時間戳信息進行更新。
優(yōu)選地,所述腳本服務(wù)器有一臺或多臺,所述腳本服務(wù)器有多臺時,所述解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的IP地址的步驟包括:
解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的域名;
由所述域名和多個IP地址的映射關(guān)系,選取一個IP地址進行訪問;
其中所述域名和多個IP地址的映射關(guān)系保存在應(yīng)用服務(wù)器端的配置文件中。
優(yōu)選地,所述腳本服務(wù)器與應(yīng)用服務(wù)器為同一服務(wù)器或不同的服務(wù)器。
本申請還公開了一種頁面腳本的加載裝置,包括:
判斷模塊,用于判斷應(yīng)用服務(wù)器中是否存在與待加載頁面腳本的URL對應(yīng)的時間戳信息;
時間戳信息添加模塊,用于若瀏覽器判定應(yīng)用服務(wù)器中存在與待加載頁面腳本的URL對應(yīng)的時間戳信息,則提取所述與待加載頁面腳本的URL對應(yīng)的時間戳信息,并添加到所述待加載頁面腳本的URL中;
頁面腳本加載模塊,用于依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載。
優(yōu)選地,所述判斷模塊還用于:
判斷應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中是否包括所述待加載頁面腳本的URL,其中,所述時間戳對應(yīng)表包括頁面腳本URL和時間戳信息的對應(yīng)關(guān)系,并按照預(yù)設(shè)頻率進行更新;
若是,則判定應(yīng)用服務(wù)器中存在與待加載頁面腳本的URL對應(yīng)的時間戳信息;
若否,則判定應(yīng)用服務(wù)器中不存在與待加載頁面腳本的URL對應(yīng)的時間戳信息。
優(yōu)選地,所述裝置還包括:
時間戳對應(yīng)表添加模塊,用于若瀏覽器判定應(yīng)用服務(wù)器中不存在與待加載頁面腳本的URL對應(yīng)的時間戳信息,則觸發(fā)所述應(yīng)用服務(wù)器生成所述待加載頁面腳本的時間戳信息,并將所述待加載頁面腳本的URL和時間戳信息的對應(yīng)關(guān)系添加到所述時間戳對應(yīng)表中。
優(yōu)選地,所述頁面腳本發(fā)布在腳本服務(wù)器上,并攜帶所述頁面腳本的名稱信息和發(fā)布時間。
優(yōu)選地,所述時間戳對應(yīng)表添加模塊包括:
添加請求發(fā)送子模塊,用于向應(yīng)用服務(wù)器發(fā)送時間戳對應(yīng)表添加的請求,觸發(fā)所述應(yīng)用服務(wù)器依據(jù)請求在腳本服務(wù)器中提取所述頁面腳本的名稱信息和發(fā)布時間;
時間戳信息生成子模塊,用于由所述頁面腳本的名稱信息和發(fā)布時間生成相應(yīng)的時間戳信息;
時間戳添加子模塊,用于將所述頁面腳本URL和時間戳信息的對應(yīng)關(guān)系添加到時間戳對應(yīng)表中。
優(yōu)選地,所述頁面腳本加載模塊包括:
時間戳信息判斷子模塊,用于在瀏覽器端的緩存中搜索是否存在符合預(yù)設(shè)條件的頁面腳本,所述預(yù)設(shè)條件為,與所述添加后的頁面腳本URL具備相同URL,且兩者時間戳信息一致;若是,則執(zhí)行緩存提取子模塊,若否,則執(zhí)行服務(wù)器提取子模塊;
緩存提取子模塊,用于提取緩存中的頁面腳本;
服務(wù)器提取子模塊,用于依據(jù)添加后的頁面腳本URL在腳本服務(wù)器提取相應(yīng)的頁面腳本;
加載子模塊,用于對提取的頁面腳本進行頁面加載。
優(yōu)選地,所述應(yīng)用服務(wù)器采用以下子模塊預(yù)置時間戳對應(yīng)表:
頁面腳本信息提取子模塊,用于在腳本服務(wù)器提取各頁面腳本的URL、名稱信息和發(fā)布時間;
時間戳生成子模塊,用于由所述名稱信息和發(fā)布時間生成對應(yīng)的頁面腳本的時間戳信息;
時間戳對應(yīng)表生成子模塊,用于由所述時間戳信息和URL的對應(yīng)關(guān)系,生成時間戳對應(yīng)表,并保存在應(yīng)用服務(wù)器。
優(yōu)選地,所述應(yīng)用服務(wù)器采用以下子模塊更新時間戳對應(yīng)表:
URL解析子模塊,用于讀取時間戳對應(yīng)表,解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的IP地址;
發(fā)布時間獲取子模塊,用于依據(jù)所述IP地址獲取對應(yīng)的頁面腳本的發(fā)布時間;
時間對比子模塊,用于判斷所述發(fā)布時間和時間戳信息中的時間是否一致,若否,則按照所述發(fā)布時間對所述時間戳信息進行更新。
優(yōu)選地,所述腳本服務(wù)器有一臺或多臺,所述腳本服務(wù)器有多臺時,所述第一URL解析子模塊包括:
域名解析單元,用于解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的域名;
IP地址對應(yīng)單元,用于由所述域名和多個IP地址的映射關(guān)系,選取一個IP地址進行訪問;
其中所述域名和多個IP地址的映射關(guān)系保存在應(yīng)用服務(wù)器端的配置文件中。
優(yōu)選地,所述腳本服務(wù)器與應(yīng)用服務(wù)器為同一服務(wù)器或不同的服務(wù)器。
與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點:
依據(jù)本申請,預(yù)置頁面腳本URL與時間戳的對應(yīng)表,在加載頁面腳本的時候,無需依據(jù)頁面腳本的名稱信息在腳本服務(wù)器中搜索最新的時間戳信息,直接依據(jù)頁面腳本URL在對應(yīng)表中即可提取最新的時間戳信息,時間戳對應(yīng)表按照預(yù)設(shè)頻率會不斷更新,因此,服務(wù)器中的腳本文件無需具備最新的時間戳,在發(fā)布腳本文件時,不需要對時間戳信息進行修改,大大減少了腳本更新帶來的工作量。
其次,相比于現(xiàn)有技術(shù)中去服務(wù)器請求最新時間戳,由于本申請將時間戳對應(yīng)表置于應(yīng)用服務(wù)器端中,讀取速度大大提高,進而可以加快頁面腳本的加載速度。
附圖說明
圖1是本申請的一種頁面腳本的加載方法實施例1的流程圖;
圖2是本申請的一種頁面腳本的加載方法實施例2的流程圖;
圖3是本申請的一種頁面腳本的加載裝置實施例1的結(jié)構(gòu)框圖;
圖4是本申請的一種頁面腳本的加載裝置實施例2的結(jié)構(gòu)框圖。
具體實施方式
為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進一步詳細的說明。
參考圖1,其示出了本申請的一種頁面腳本的加載方法實施例1的流程圖,具體可以包括以下步驟:
步驟101、瀏覽器依據(jù)待加載頁面腳本的URL,在應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中,提取所述待加載頁面腳本的時間戳信息,并添加到所述URL中;其中,所述時間戳對應(yīng)表包括頁面腳本URL和時間戳信息的對應(yīng)關(guān)系,并按照預(yù)設(shè)頻率進行更新。
在本申請中,頁面腳本和時間戳信息的對應(yīng)關(guān)系由應(yīng)用服務(wù)器生成,并做成對應(yīng)表的形式,對應(yīng)表中的時間戳信息按照一定的頻率自動更新。因此,在更新頁面腳本的時候,不用相應(yīng)更新時間戳信息,這大大減少了腳本更新帶來的工作量。
優(yōu)選的,所述應(yīng)用服務(wù)器可以通過以下步驟預(yù)置時間戳對應(yīng)表:
子步驟S11、在腳本服務(wù)器提取各頁面腳本的URL、名稱信息和發(fā)布時間;
子步驟S12、由所述名稱信息和發(fā)布時間生成對應(yīng)的頁面腳本的時間戳信息;
子步驟S13、由所述時間戳信息和URL的對應(yīng)關(guān)系,生成時間戳對應(yīng)表,并保存在應(yīng)用服務(wù)器。
所述頁面腳本可以發(fā)布在腳本服務(wù)器上,并攜帶所述頁面腳本的名稱信息和發(fā)布時間,應(yīng)用服務(wù)器在腳本服務(wù)器提取腳本的名稱信息和發(fā)布時間并生成相應(yīng)的時間戳信息,然后由時間戳和URL的對應(yīng)關(guān)系,生成時間戳對應(yīng)表。
在本申請的一種優(yōu)選實施例中,所述應(yīng)用服務(wù)器可以按照一定的頻率獲取腳頁面腳本的最新發(fā)布時間,然后依據(jù)頁面腳本的發(fā)布時間對對應(yīng)表中的時間戳信息進行更新。具體的,可以通過以下步驟更新瀏覽器端的時間戳對應(yīng)表:
子步驟S21、讀取時間戳對應(yīng)表,解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的IP地址;
子步驟S22、依據(jù)所述IP地址獲取對應(yīng)的頁面腳本的發(fā)布時間;
子步驟S23、判斷所述發(fā)布時間和時間戳信息中的時間是否一致,若否,則按照所述發(fā)布時間對所述時間戳信息進行更新。
讀取時間戳對應(yīng)表可以得到頁面腳本的URL,對URL進行解析可以獲得頁面腳本所保存的應(yīng)用服務(wù)器的IP地址,依據(jù)IP地址便可以獲得相應(yīng)的頁面腳本的發(fā)布時間。在具體的實現(xiàn)中,所述腳本服務(wù)器可以有一臺或多臺,當頁面腳本服務(wù)器只有一臺時,解析腳本URL,便可獲取相應(yīng)的IP地址;所述腳本服務(wù)器有多臺時,即頁面腳本保存在服務(wù)器集群的多臺服務(wù)器上,意味著一個URL地址可以對應(yīng)多臺應(yīng)用服務(wù)器的IP地址,所述解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的IP地址的步驟可以包括:
子步驟S31、解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的域名;
子步驟S32、由所述域名和多個IP地址的映射關(guān)系,選取一個IP地址進行訪問;
多臺服務(wù)器可以提高系統(tǒng)的吞吐量并提高系統(tǒng)的穩(wěn)定性,不會出現(xiàn)單機出錯,全站就不能訪問的弊端。其中,所述域名和多個IP地址的映射關(guān)系保存在應(yīng)用服務(wù)器端的配置文件中,讀取配置文件可獲得URL對應(yīng)的多個IP地址,在選取某一IP地址進行訪問時,可以是隨機選擇,也可以按照一定的預(yù)設(shè)規(guī)則,選擇比較空閑的服務(wù)器進行訪問,本申請對此并不做限制。在具體的實現(xiàn)中,所述多臺服務(wù)器可以為CDN集群,CDN集群可以依據(jù)用戶當前所在位置優(yōu)選距離用戶最近的服務(wù)器供用戶訪問,可以大大的提升靜態(tài)資源(JavaScript腳本,CSS文件,Html文本)等資源的響應(yīng)和傳輸速度,減少用戶的等待時間。
優(yōu)選的,所述腳本服務(wù)器與應(yīng)用服務(wù)器可以為同一服務(wù)器或不同的服務(wù)器。
步驟102、瀏覽器依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載。
具體的,所述瀏覽器依據(jù)添加后的頁面腳本URL提取相應(yīng)的頁面腳本,進行頁面加載的步驟可以包括:
子步驟S41、在瀏覽器端的緩存中搜索是否存在符合預(yù)設(shè)條件的頁面腳本,所述預(yù)設(shè)條件為,與所述添加后的頁面腳本URL具備相同URL,且兩者時間戳信息一致;
子步驟S42、若是,則提取緩存中的頁面腳本,若否,則依據(jù)添加后的頁面腳本URL在腳本服務(wù)器提取相應(yīng)的頁面腳本;
子步驟S43、對提取的頁面腳本進行頁面加載。
在時間戳對應(yīng)表找到頁面腳本URL對應(yīng)的時間戳信息,添加到URL中由于緩存中存在歷史加載過的頁面腳本,可以將緩存中的頁面腳本的時間戳信息與添加的時間戳信息進行對比,若一致,則說明緩存中已有新版本的頁面腳本,若不一致,說明緩存中的頁面腳本是未更新的版本,可以在腳本服務(wù)器提取最新的頁面腳本??梢砸罁?jù)添加時間戳信息的URL,提取發(fā)布時間與時間戳信息一致頁面腳本。
參考圖2,其示出了本申請的一種頁面腳本的加載方法實施例2的流程圖,具體可以包括以下步驟:
步驟201、瀏覽器判斷應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中是否包括所述待加載頁面腳本的URL,若是,則執(zhí)行步驟203;若否,則執(zhí)行步驟202和步驟203,其中,所述時間戳對應(yīng)表包括頁面腳本URL和時間戳信息的對應(yīng)關(guān)系,并按照預(yù)設(shè)頻率進行更新。
步驟202、觸發(fā)應(yīng)用服務(wù)器生成該腳本的時間戳信息,并將該腳本的URL和時間戳信息的對應(yīng)關(guān)系添加到所述時間戳對應(yīng)表中。
在具體的實現(xiàn)中,所述步驟202可以包括:
子步驟S61、瀏覽器向應(yīng)用服務(wù)器發(fā)送時間戳對應(yīng)表添加的請求;
子步驟S62、應(yīng)用服務(wù)器依據(jù)請求在腳本服務(wù)器中提取所述頁面腳本的名稱信息和發(fā)布時間;
子步驟S63、應(yīng)用服務(wù)器由所述頁面腳本的名稱信息和發(fā)布時間生成相應(yīng)的時間戳信息;
子步驟S64、應(yīng)用服務(wù)器將所述頁面腳本URL和時間戳信息的對應(yīng)關(guān)系發(fā)送到瀏覽器,瀏覽器將所述對應(yīng)關(guān)系添加到時間戳對應(yīng)表中。
預(yù)置時間戳對應(yīng)表后,若應(yīng)用服務(wù)器端添加了新的頁面腳本,在對這些新的頁面腳本進行加載時,對應(yīng)表中并不包括待加載的頁面腳本及其對應(yīng)的時間戳信息,因此,還需判斷時間戳對應(yīng)表中是否包含頁面腳本URL,若不包括,則向應(yīng)用服務(wù)器發(fā)送時間戳對應(yīng)表的添加請求,觸發(fā)應(yīng)用服務(wù)器生成該頁面腳本與其時間戳信息的對應(yīng)關(guān)系,并添加到時間戳對應(yīng)表中。
步驟203、瀏覽器依據(jù)待加載頁面腳本的URL,在應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中,提取所述待加載頁面腳本的時間戳信息,并添加到所述URL中;
步驟204、瀏覽器依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載。
綜上所述,依據(jù)本申請,預(yù)置頁面腳本URL與時間戳的對應(yīng)表,在加載頁面腳本的時候,無需依據(jù)頁面腳本的名稱信息在腳本服務(wù)器中搜索最新的時間戳信息,直接依據(jù)頁面腳本URL在對應(yīng)表中即可提取最新的時間戳,時間戳對應(yīng)表按照預(yù)設(shè)頻率會不斷更新,因此,服務(wù)器中的腳本文件無需具備最新的時間戳,在發(fā)布腳本文件時,不需要對時間戳信息進行修改,這大大減少了腳本更新帶來的工作量。
其次,相比于現(xiàn)有技術(shù)中去服務(wù)器請求最新時間戳,由于本申請將時間戳對應(yīng)表置于應(yīng)用服務(wù)器中,讀取速度大大提高,進而可以加快頁面腳本的加載速度。
對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。
參考圖3,其示出了本申請的一種瀏覽器端加載頁面腳本的裝置實施例1的結(jié)構(gòu)框圖,具體可以包括以下模塊:
時間戳信息添加模塊302,用于瀏覽器依據(jù)待加載頁面腳本的URL,在應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中,提取所述待加載頁面腳本的時間戳信息,并添加到所述URL中;
頁面腳本加載模塊303,用于瀏覽器依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載。
對應(yīng)應(yīng)用服務(wù)器一側(cè),可包括時間戳對應(yīng)表預(yù)置模塊301,用于應(yīng)用服務(wù)器預(yù)置時間戳對應(yīng)表,所述時間戳對應(yīng)表包括頁面腳本URL和時間戳信息的對應(yīng)關(guān)系,并按照預(yù)設(shè)頻率進行更新。
在本申請的一種優(yōu)選實施例中,所述頁面腳本發(fā)布可以在腳本服務(wù)器上,并攜帶所述頁面腳本的名稱信息和發(fā)布時間。
在本申請的一種優(yōu)選實施例中,所述應(yīng)用服務(wù)器可以通過以下子模塊預(yù)置時間戳對應(yīng)表:
第一頁面腳本信息提取子模塊,用于在腳本服務(wù)器提取各頁面腳本的URL、名稱信息和發(fā)布時間;
第一時間戳信息生成子模塊,用于由所述名稱信息和發(fā)布時間生成對應(yīng)的頁面腳本的時間戳信息;
第一時間戳對應(yīng)表生成子模塊,用于由所述時間戳信息和URL的對應(yīng)關(guān)系,生成時間戳對應(yīng)表,并保存在應(yīng)用服務(wù)器。
在本申請的一種優(yōu)選實施例中,所述應(yīng)用服務(wù)器可以通過以下子模塊更新時間戳對應(yīng)表:
第一URL解析子模塊,用于讀取時間戳對應(yīng)表,解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的IP地址;
第一發(fā)布時間獲取子模塊,用于依據(jù)所述IP地址獲取對應(yīng)的頁面腳本的發(fā)布時間;
第一時間對比子模塊,用于判斷所述發(fā)布時間和時間戳信息中的時間是否一致,若否,則按照所述發(fā)布時間對所述時間戳信息進行更新。
在本申請的一種優(yōu)選實施例中,所述腳本服務(wù)器可以有一臺或多臺,所述腳本服務(wù)器有多臺時,所述第一URL解析子模塊或第二URL解析子模塊可以包括:
域名解析子模塊,用于解析頁面腳本URL生成對應(yīng)的腳本服務(wù)器的域名;
IP地址對應(yīng)子模塊,用于由所述域名和多個IP地址的映射關(guān)系,選取一個IP地址進行訪問;
其中所述域名和多個IP地址的映射關(guān)系保存在應(yīng)用服務(wù)器端的配置文件中。
在具體的實現(xiàn)中,所述腳本服務(wù)器與應(yīng)用服務(wù)器可以為同一服務(wù)器或不同的服務(wù)器。
在本申請的另一種優(yōu)選實施例中,所述頁面腳本加載模塊可以包括:
時間戳信息判斷子模塊,用于在瀏覽器端的緩存中搜索是否存在符合預(yù)設(shè)條件的頁面腳本,所述預(yù)設(shè)條件為,與所述添加后的頁面腳本URL具備相同URL,且兩者時間戳信息一致,若是,則執(zhí)行緩存提取子模塊,若否,則執(zhí)行服務(wù)器提取子模塊;
緩存提取子模塊,用于提取緩存中的頁面腳本;
服務(wù)器提取子模塊,用于依據(jù)添加后的頁面腳本URL在服務(wù)器提取相應(yīng)的頁面腳本;
加載子模塊,用于對提取的頁面腳本進行頁面加載。
參考圖4,其示出了本申請的一種頁面腳本的加載裝置實施例2的結(jié)構(gòu)框圖,具體可以包括以下模塊:
時間戳對應(yīng)表預(yù)置模塊401,用于應(yīng)用服務(wù)器預(yù)置時間戳對應(yīng)表,所述時間戳對應(yīng)表包括頁面腳本URL和時間戳信息的對應(yīng)關(guān)系,并按照預(yù)設(shè)頻率進行更新;
時間戳對應(yīng)表判斷模塊402,用于瀏覽器判斷應(yīng)用服務(wù)器的時間戳對應(yīng)表中是否包括所述待加載頁面腳本的URL,若是,則執(zhí)行時間戳信息添加模塊404,若否,則執(zhí)行時間戳對應(yīng)表添加模塊403和時間戳信息添加模塊404;
時間戳對應(yīng)表添加模塊403,用于生成該腳本的時間戳信息,并將該腳本的URL和時間戳信息的對應(yīng)關(guān)系添加到所述時間戳對應(yīng)表中。
時間戳信息添加模塊404,用于瀏覽器依據(jù)待加載頁面腳本的URL,在應(yīng)用服務(wù)器預(yù)置的時間戳對應(yīng)表中,提取所述待加載頁面腳本的時間戳信息,并添加到所述URL中;
頁面腳本加載模塊405,用于瀏覽器依據(jù)添加后的URL提取相應(yīng)的頁面腳本,進行頁面加載。
在本申請的一種優(yōu)選實施例中,所述時間戳對應(yīng)表添加模塊可以包括:
添加請求發(fā)送模塊,用于瀏覽器向應(yīng)用服務(wù)器發(fā)送時間戳對應(yīng)表添加的請求;
第二頁面腳本信息提取子模塊,用于應(yīng)用服務(wù)器依據(jù)請求在腳本服務(wù)器中提取所述頁面腳本的名稱信息和發(fā)布時間;
第二時間戳信息生成子模塊,用于應(yīng)用服務(wù)器由所述頁面腳本的名稱信息和發(fā)布時間生成相應(yīng)的時間戳信息;
時間戳添加子模塊,用于應(yīng)用服務(wù)器將所述頁面腳本URL和時間戳信息的對應(yīng)關(guān)系發(fā)送到瀏覽器,瀏覽器將所述對應(yīng)關(guān)系添加到時間戳對應(yīng)表中。
由于所述裝置實施例基本相應(yīng)于前述圖1和圖2所示的方法實施例,故本實施例的描述中未詳盡之處,可以參見前述實施例中的相關(guān)說明,在此就不贅述了。
本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務(wù)器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本申請所提供的一種頁面腳本的加載方法,以及,一種頁面腳本的加載裝置進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。