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