一種頁(yè)面生成方法、裝置及系統(tǒng)的制作方法
【專(zhuān)利摘要】本申請(qǐng)?zhí)峁┝艘环N頁(yè)面生成方法、裝置及系統(tǒng),方案包括:接收頁(yè)面訪問(wèn)請(qǐng)求;根據(jù)所述頁(yè)面訪問(wèn)請(qǐng)求,獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),所述第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù);在獲取到第一數(shù)據(jù)后,根據(jù)第一數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行初次渲染;從服務(wù)器獲取所述頁(yè)面的第二數(shù)據(jù);在獲取到第二數(shù)據(jù)后,根據(jù)第二數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行二次渲染。本申請(qǐng)實(shí)施例中在獲取到第一數(shù)據(jù)后即可根據(jù)第一數(shù)據(jù)進(jìn)行頁(yè)面渲染,不需要等待獲取到所有數(shù)據(jù)后再生成頁(yè)面呈現(xiàn)給用戶(hù),且由于第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù),從而可以快速的為用戶(hù)提供根據(jù)第一數(shù)據(jù)渲染后的頁(yè)面,解決了用戶(hù)長(zhǎng)時(shí)間等待的技術(shù)問(wèn)題,提高了用戶(hù)體驗(yàn)。
【專(zhuān)利說(shuō)明】
一種頁(yè)面生成方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本申請(qǐng)涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種頁(yè)面生成方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002] 人們?cè)跒g覽網(wǎng)頁(yè)或應(yīng)用程序(APP,Application)中的原生頁(yè)(native page)時(shí), 由于所要瀏覽的頁(yè)面中的各種數(shù)據(jù)可能需要向不同的服務(wù)器獲取,在獲取到所有數(shù)據(jù)之后 才能生成頁(yè)面。這種情況下,頁(yè)面生成的耗時(shí)會(huì)比較長(zhǎng),從發(fā)出頁(yè)面訪問(wèn)請(qǐng)求、獲取各種數(shù) 據(jù)、進(jìn)行頁(yè)面渲染到最終頁(yè)面完整呈現(xiàn)這一整個(gè)過(guò)程中,用戶(hù)一直處于等待狀態(tài),而長(zhǎng)時(shí)間 的等待可能會(huì)導(dǎo)致用戶(hù)反感,甚至失去瀏覽興趣。
[0003] 現(xiàn)有技術(shù)不足在于:
[0004] 在頁(yè)面生成過(guò)程中,用戶(hù)需要長(zhǎng)時(shí)間的等待,導(dǎo)致用戶(hù)體驗(yàn)不佳。
【發(fā)明內(nèi)容】
[0005] 本申請(qǐng)實(shí)施例提出了一種頁(yè)面生成方法、裝置及系統(tǒng),以解決現(xiàn)有技術(shù)中在頁(yè)面 生成過(guò)程中用戶(hù)需要長(zhǎng)時(shí)間的等待導(dǎo)致用戶(hù)體驗(yàn)不佳的技術(shù)問(wèn)題。
[0006] 本申請(qǐng)實(shí)施例提供了一種頁(yè)面生成方法,包括如下步驟:
[0007] 接收頁(yè)面訪問(wèn)請(qǐng)求;
[0008] 根據(jù)所述頁(yè)面訪問(wèn)請(qǐng)求,獲取與所述頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),所 述第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù);
[0009] 在獲取到第一數(shù)據(jù)后,根據(jù)所述第一數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行初次渲染;
[0010] 從服務(wù)器獲取所述頁(yè)面的第二數(shù)據(jù);
[0011] 在獲取到所述第二數(shù)據(jù)后,根據(jù)所述第二數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行二次渲染。
[0012] 本申請(qǐng)實(shí)施例提供了一種頁(yè)面生成裝置,包括:
[0013] 接收模塊,用于接收頁(yè)面訪問(wèn)請(qǐng)求;
[0014] 獲取模塊,用于根據(jù)所述頁(yè)面訪問(wèn)請(qǐng)求,獲取與所述頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面 的第一數(shù)據(jù),所述第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù);
[0015] 渲染模塊,用于在獲取到第一數(shù)據(jù)后,根據(jù)所述第一數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行初次渲 染;
[0016] 所述獲取模塊進(jìn)一步用于從服務(wù)器獲取所述頁(yè)面的第二數(shù)據(jù);所述渲染模塊進(jìn)一 步用于在獲取到所述第二數(shù)據(jù)后,根據(jù)所述第二數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行二次渲染。
[0017] 有益效果如下:
[0018] 本申請(qǐng)實(shí)施例所提供的頁(yè)面生成方案,在接收到頁(yè)面訪問(wèn)請(qǐng)求后,根據(jù)該頁(yè)面訪 問(wèn)請(qǐng)求獲取與該頁(yè)面訪問(wèn)請(qǐng)求對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),并在獲取到第一數(shù)據(jù)后根據(jù)第一數(shù) 據(jù)進(jìn)行頁(yè)面渲染,所述第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù)。本申請(qǐng)實(shí)施例中在獲取到第一 數(shù)據(jù)后即可為用戶(hù)呈現(xiàn)根據(jù)第一數(shù)據(jù)渲染后所生成的頁(yè)面,不需要等待獲取到所有數(shù)據(jù)后 再生成頁(yè)面呈現(xiàn)給用戶(hù)。且第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù),因此,根據(jù)第一數(shù)據(jù)對(duì)頁(yè)面 進(jìn)行渲染所需要的時(shí)間較少,幾乎可以忽略不計(jì),從而可以更快速地為用戶(hù)提供根據(jù)第一 數(shù)據(jù)渲染后所生成的頁(yè)面,解決了用戶(hù)長(zhǎng)時(shí)間等待的技術(shù)問(wèn)題,提高了用戶(hù)體驗(yàn)。
【附圖說(shuō)明】
[0019] 下面將參照附圖描述本申請(qǐng)的具體實(shí)施例,其中:
[0020] 圖1示出了本申請(qǐng)實(shí)施例中頁(yè)面生成方法實(shí)施的流程示意圖;
[0021] 圖2示出了本申請(qǐng)實(shí)施例中下單頁(yè)面生成流程示意圖;
[0022] 圖3示出了本申請(qǐng)實(shí)施例中頁(yè)面生成裝置的結(jié)構(gòu)示意圖;
[0023] 圖4示出了本申請(qǐng)實(shí)施例中頁(yè)面生成系統(tǒng)內(nèi)的交互示意圖。
【具體實(shí)施方式】
[0024] 為了使本申請(qǐng)的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本申請(qǐng)的示例性 實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說(shuō)明,顯然,所描述的實(shí)施例僅是本申請(qǐng)的一部分實(shí)施例,而不是 所有實(shí)施例的窮舉。并且在不沖突的情況下,本說(shuō)明中的實(shí)施例及實(shí)施例中的特征可以互 相結(jié)合。
[0025] 針對(duì)現(xiàn)有技術(shù)的不足,本申請(qǐng)實(shí)施例提出了一種頁(yè)面生成方法、裝置及系統(tǒng),下面 進(jìn)行說(shuō)明。
[0026] 圖1示出了本申請(qǐng)實(shí)施例中頁(yè)面生成方法實(shí)施的流程示意圖,如圖所示,頁(yè)面生 成方法可以包括如下步驟:
[0027] 步驟101、接收頁(yè)面訪問(wèn)請(qǐng)求;
[0028] 步驟102、根據(jù)該頁(yè)面訪問(wèn)請(qǐng)求,獲取與該頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù) 據(jù),第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù);
[0029] 步驟103、在獲取到第一數(shù)據(jù)后,根據(jù)第一數(shù)據(jù)對(duì)頁(yè)面進(jìn)行初次渲染;
[0030] 步驟104、從服務(wù)器獲取所述頁(yè)面的第二數(shù)據(jù);
[0031 ] 步驟105、在獲取到第二數(shù)據(jù)后,根據(jù)第二數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行二次渲染。
[0032] 其中,第一數(shù)據(jù)可以為在接收頁(yè)面訪問(wèn)請(qǐng)求之前通過(guò)用戶(hù)訪問(wèn)其他頁(yè)面或者下載 /終端間傳輸?shù)确绞筋A(yù)先存儲(chǔ)在本地的數(shù)據(jù),如圖片、文字等信息。第二數(shù)據(jù)可以是除預(yù)先 存儲(chǔ)于本地的第一數(shù)據(jù)以外的其他數(shù)據(jù)。
[0033] 本申請(qǐng)實(shí)施例所提供的頁(yè)面生成方法,在接收到頁(yè)面訪問(wèn)請(qǐng)求后,根據(jù)該頁(yè)面訪 問(wèn)請(qǐng)求獲取與該頁(yè)面訪問(wèn)請(qǐng)求對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),并在獲取到第一數(shù)據(jù)后根據(jù)第一數(shù) 據(jù)進(jìn)行頁(yè)面渲染。所述第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù)。本申請(qǐng)實(shí)施例中在獲取到第一 數(shù)據(jù)后即可為用戶(hù)呈現(xiàn)根據(jù)第一數(shù)據(jù)渲染后所生成的頁(yè)面,不需要等待獲取到所有數(shù)據(jù)后 再生成頁(yè)面呈現(xiàn)給用戶(hù)。且第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù),因此,根據(jù)第一數(shù)據(jù)對(duì)頁(yè)面 進(jìn)行渲染所需要的時(shí)間較少,幾乎可以忽略不計(jì),從而可以快速地為用戶(hù)提供根據(jù)第一數(shù) 據(jù)渲染后的頁(yè)面,解決了用戶(hù)長(zhǎng)時(shí)間等待的技術(shù)問(wèn)題,提高了用戶(hù)體驗(yàn)。在本申請(qǐng)實(shí)施例 中還進(jìn)一步包括從服務(wù)器獲取頁(yè)面的第二數(shù)據(jù),并在獲取到第二數(shù)據(jù)后對(duì)頁(yè)面進(jìn)行二次渲 染,從而確保頁(yè)面數(shù)據(jù)的完整性。
[0034] 實(shí)施中,所述頁(yè)面可以為商品下單頁(yè)面;
[0035] 所述獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),可以具體包括:
[0036] 從商品詳情頁(yè)面或購(gòu)物車(chē)頁(yè)面獲取商品下單頁(yè)面的第一數(shù)據(jù);
[0037] 其中,第一數(shù)據(jù)可以為:商品標(biāo)識(shí)、商品顏色、商品尺寸、購(gòu)買(mǎi)數(shù)量、商品圖片、商家 店鋪信息等。
[0038] 隨著網(wǎng)購(gòu)熱潮的不斷增長(zhǎng),網(wǎng)上購(gòu)物已成為人們?nèi)粘I畹囊徊糠?。而在現(xiàn)有網(wǎng) 購(gòu)過(guò)程中,用戶(hù)通常是先在購(gòu)物網(wǎng)站挑選自己喜歡的商品,在商品的詳情頁(yè)面查看商品的 具體內(nèi)容,然后通過(guò)點(diǎn)擊加入購(gòu)物車(chē)再確認(rèn)購(gòu)買(mǎi)或者直接在商品詳情頁(yè)面點(diǎn)擊購(gòu)買(mǎi)等方式 進(jìn)入到下單頁(yè)面。在本申請(qǐng)實(shí)施例中,利用用戶(hù)瀏覽的商品詳情頁(yè)面或者購(gòu)物車(chē)頁(yè)面已經(jīng) 存在的商品信息,將這些信息透?jìng)鞯较聠雾?yè)面,從而實(shí)現(xiàn)對(duì)下單頁(yè)面的預(yù)渲染。
[0039] 具體實(shí)施中,在用戶(hù)發(fā)送當(dāng)前頁(yè)面訪問(wèn)請(qǐng)求之前,本地可能已經(jīng)緩存了用戶(hù)之前 訪問(wèn)過(guò)的其他頁(yè)面的數(shù)據(jù),如:在cookies中存儲(chǔ)有圖片信息等。本申請(qǐng)實(shí)施例中獲取第 一數(shù)據(jù)可以是利用cookies方式,將本地cookies中的第一數(shù)據(jù)傳輸至當(dāng)前頁(yè)面,從而實(shí)現(xiàn) 根據(jù)該第一數(shù)據(jù)對(duì)頁(yè)面進(jìn)行植染的目的;還可以通過(guò)Session變量、Application變量等來(lái) 實(shí)現(xiàn)將一個(gè)頁(yè)面(源頁(yè)面)中的數(shù)據(jù)傳輸?shù)搅硪粋€(gè)頁(yè)面(當(dāng)前頁(yè)面)的目的,也可以利用 post方法、QueryString、Server. Transfer等方式來(lái)實(shí)現(xiàn)頁(yè)面間傳值。本領(lǐng)域技術(shù)人員可 以根據(jù)實(shí)際需要選擇相應(yīng)的頁(yè)面間透?jìng)鲾?shù)據(jù)的具體方式,本申請(qǐng)對(duì)此不作限制。
[0040] 采用本申請(qǐng)實(shí)施例所提供的頁(yè)面生成方法,可以快速的為用戶(hù)提供下單頁(yè)面,以 免用戶(hù)一直等待而失去購(gòu)物興趣,給用戶(hù)帶來(lái)更好的購(gòu)物體驗(yàn)。
[0041] 實(shí)施中,第二數(shù)據(jù)可以為商品庫(kù)存信息。
[0042] 為了避免由于庫(kù)存不足而導(dǎo)致下單失敗,本申請(qǐng)實(shí)施例在獲取下單頁(yè)面的商品 標(biāo)識(shí)、商品顏色、商品尺寸、購(gòu)買(mǎi)數(shù)量、商品圖片、商家店鋪等信息之外,還需要獲取商品庫(kù) 存信息,并根據(jù)商品庫(kù)存信息對(duì)下單頁(yè)面進(jìn)行二次渲染,比如,獲取到的第二數(shù)據(jù)為庫(kù)存不 足,那么可以在下單頁(yè)面提示用戶(hù)"該寶貝已不能購(gòu)買(mǎi)"等類(lèi)似信息。
[0043] 本申請(qǐng)實(shí)施例通過(guò)向服務(wù)器請(qǐng)求商品庫(kù)存信息并根據(jù)獲取到的商品庫(kù)存信息對(duì) 頁(yè)面進(jìn)行二次渲染,避免出現(xiàn)庫(kù)存不足卻依然進(jìn)行下單的情況,確保商品下單的有效性。 [0044] 實(shí)施中,獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù)和第二數(shù)據(jù),可以具體包 括:
[0045] 采用異步線(xiàn)程分別獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù)和第二數(shù)據(jù)。
[0046] 其中,異步線(xiàn)程可以指一個(gè)進(jìn)程啟動(dòng)的多個(gè)不相關(guān)的線(xiàn)程。在具體實(shí)施中,可以通 過(guò)線(xiàn)程池等方式來(lái)實(shí)現(xiàn),本領(lǐng)域技術(shù)人員進(jìn)行相應(yīng)的開(kāi)發(fā)即可,本申請(qǐng)對(duì)異步線(xiàn)程的具體 實(shí)現(xiàn)方式不作限制。
[0047] 現(xiàn)有技術(shù)中頁(yè)面生成過(guò)程為同步等待方式,也即,接收到頁(yè)面訪問(wèn)請(qǐng)求后向A服 務(wù)器獲取A數(shù)據(jù)后,才能向B服務(wù)器獲取B數(shù)據(jù),最終在獲取到所有數(shù)據(jù)后生成頁(yè)面提供給 用戶(hù)。
[0048] 而本申請(qǐng)實(shí)施例通過(guò)啟動(dòng)異步線(xiàn)程,可以在接收到頁(yè)面訪問(wèn)請(qǐng)求后,由一個(gè)線(xiàn)程 獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),由另一個(gè)線(xiàn)程獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng) 的頁(yè)面的第二數(shù)據(jù),彼此之間不會(huì)有等待情況,各自完成不同的數(shù)據(jù)獲取操作。由于本申請(qǐng) 實(shí)施例中采用異步線(xiàn)程分別獲取第一數(shù)據(jù)和第二數(shù)據(jù),不需要等待獲取到第一數(shù)據(jù)之后再 獲取第二數(shù)據(jù),從而提高了第二數(shù)據(jù)的獲取速度,進(jìn)而可以快速地為用戶(hù)生成經(jīng)二次渲染 后的頁(yè)面。
[0049] 具體實(shí)施中,在頁(yè)面生成時(shí)可能還需要用戶(hù)的一些基本信息,比如:用戶(hù)手機(jī)號(hào) 碼、賬號(hào)ID等,而這些用戶(hù)數(shù)據(jù)(或者稱(chēng)為第三數(shù)據(jù))是客戶(hù)端上通用的,屬于全局?jǐn)?shù)據(jù), 通常存儲(chǔ)于客戶(hù)端的共享位置,因此不需要從其他頁(yè)面透?jìng)鞯玫健?br>[0050] 本申請(qǐng)實(shí)施例中可以進(jìn)一步獲取用戶(hù)數(shù)據(jù)并根據(jù)用戶(hù)數(shù)據(jù)對(duì)頁(yè)面進(jìn)行渲染。由于 這些用戶(hù)數(shù)據(jù)也是存儲(chǔ)于客戶(hù)端上的數(shù)據(jù),因此,可以與第一數(shù)據(jù)一起完成頁(yè)面的首次渲 染;待獲取到第二數(shù)據(jù)后再對(duì)頁(yè)面進(jìn)行二次渲染,從而使得頁(yè)面數(shù)據(jù)更加完整。
[0051] 為了便于本申請(qǐng)的實(shí)施,下面以手機(jī)淘寶APP的下單頁(yè)面作為實(shí)例進(jìn)行說(shuō)明。
[0052] 目前手機(jī)淘寶APP的下單業(yè)務(wù)流程中需要依賴(lài)優(yōu)惠系統(tǒng)、庫(kù)存系統(tǒng)等多個(gè)服務(wù)器 系統(tǒng),當(dāng)用戶(hù)點(diǎn)擊下單時(shí),手機(jī)淘寶APP接收到用戶(hù)訪問(wèn)下單頁(yè)面的請(qǐng)求后,需要向各個(gè)服 務(wù)器依次獲取下單頁(yè)面所需要的各種數(shù)據(jù)或?qū)⒄?qǐng)求提交到一個(gè)服務(wù)器上同時(shí)由這個(gè)服務(wù) 器依次獲取各種參數(shù),在獲取到所有數(shù)據(jù)后才進(jìn)行頁(yè)面渲染,為用戶(hù)呈現(xiàn)生成的下單頁(yè)面。 在向服務(wù)器獲取數(shù)據(jù)的過(guò)程中,由于網(wǎng)絡(luò)鏈路傳輸時(shí)延的存在導(dǎo)致下單耗時(shí)較長(zhǎng),尤其在 弱網(wǎng)絡(luò)情況下,下單頁(yè)面的生成時(shí)間會(huì)更長(zhǎng)。這種方式下,可能導(dǎo)致用戶(hù)無(wú)限的等待,甚至 最終以超時(shí)結(jié)束。長(zhǎng)時(shí)間的等待會(huì)導(dǎo)致用戶(hù)反感、甚至失去購(gòu)買(mǎi)興趣。
[0053] 本申請(qǐng)實(shí)施例所提供的頁(yè)面生成方法,當(dāng)用戶(hù)確定所要購(gòu)買(mǎi)的商品后,從該商品 詳情頁(yè)或者購(gòu)物車(chē)頁(yè)面點(diǎn)擊下單時(shí),手機(jī)淘寶APP接收到用戶(hù)發(fā)送的訪問(wèn)下單頁(yè)面請(qǐng)求, 根據(jù)該請(qǐng)求從商品詳情頁(yè)或者購(gòu)物車(chē)頁(yè)面確定下單頁(yè)所需的第一數(shù)據(jù)(比如商品的圖片 信息、商家店鋪信息、購(gòu)買(mǎi)數(shù)量、優(yōu)惠信息等),將這些信息透?jìng)鹘o下單頁(yè)面,根據(jù)這些信息 即可對(duì)下單頁(yè)面進(jìn)行原生渲染。
[0054] 這里之所以稱(chēng)其為原生渲染,是因?yàn)橄聠雾?yè)面所需要的數(shù)據(jù)大部分可以從商品詳 情頁(yè)或者購(gòu)物車(chē)頁(yè)面獲取得到,這些信息已基本可以滿(mǎn)足渲染需求。但還有部分業(yè)務(wù)邏輯 是需要服務(wù)器參與的,比如庫(kù)存信息等。本申請(qǐng)實(shí)施例中通過(guò)啟動(dòng)異步線(xiàn)程,由補(bǔ)償線(xiàn)程向 遠(yuǎn)程的服務(wù)器請(qǐng)求第二數(shù)據(jù)(比如庫(kù)存信息或交易校驗(yàn)信息等),在獲取到服務(wù)器返回的 第二數(shù)據(jù)后,對(duì)下單頁(yè)面進(jìn)行補(bǔ)償渲染。比如,獲取到的第二數(shù)據(jù)為庫(kù)存不足或校驗(yàn)不通 過(guò),那么可以在下單頁(yè)面提示用戶(hù)"該寶貝已不能購(gòu)買(mǎi)"等類(lèi)似信息。
[0055] 圖2示出了本申請(qǐng)實(shí)施例下單頁(yè)面生成流程示意圖,如圖所示,下單頁(yè)面生成流 程可以包括如下步驟:
[0056] 當(dāng)用戶(hù)點(diǎn)擊下單按鈕后,手機(jī)淘寶客戶(hù)端接收到下單頁(yè)訪問(wèn)請(qǐng)求,詳情業(yè)務(wù)引擎 獲取到業(yè)務(wù)元數(shù)據(jù)(也即第一數(shù)據(jù)),并將業(yè)務(wù)元數(shù)據(jù)透?jìng)鹘o交易渲染引擎。其中,業(yè)務(wù)元 數(shù)據(jù)可以是根據(jù)不同業(yè)務(wù)場(chǎng)景確定的數(shù)據(jù),比如,交易模塊所需要的業(yè)務(wù)相關(guān)的參數(shù)等。 [0057] 詳情業(yè)務(wù)引擎透?jìng)鞯臉I(yè)務(wù)元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)可以為:
[0058] "hizMeta^: { ^basie-. I //下單頁(yè)需要的基礎(chǔ)數(shù)據(jù) "itemi<T:''.!2345'' // 寶貝 id 'skultr:n 10] 20-, // 寶員具體 slrn信息 、uantity~T;, //購(gòu)買(mǎi)數(shù)量 "picture^ 'L*% // 寶頁(yè)圖片 ?-(ψΙιφ^,.{ /7店鋪相關(guān)的信息 ?ισρΙΜ":"料 //是否是tma〗〗賣(mài)家 } "exPamms": { "prom說(shuō)kaild":"〗 2JM__56' // 優(yōu)惠信息 "tgKey":"9876543",//聚劃算需要的信息 _"icorf ic.on2,kxm3:J,沒(méi)一些可能需要的大促 icon "ddiveryMeth<xT:,,2_-r //購(gòu)買(mǎi)時(shí)候的運(yùn)送方式
[0059] } }
[0060] 上述數(shù)據(jù)結(jié)構(gòu)中定義了業(yè)務(wù)元數(shù)據(jù)包括基本數(shù)據(jù)和額外的數(shù)據(jù),通常情況下,基 本數(shù)據(jù)(如上述代碼所示可以包括寶貝id、寶貝具體SkU信息、購(gòu)買(mǎi)數(shù)量、寶貝圖片、店鋪相 關(guān)信息等)屬于所有商品均具備的數(shù)據(jù),而額外的數(shù)據(jù)(如優(yōu)惠信息、聚劃算需要的信息、 其他促銷(xiāo)信息、購(gòu)買(mǎi)時(shí)候的運(yùn)送方式等)只有在特定場(chǎng)景下的商品才會(huì)具備的數(shù)據(jù),例如: 參加雙11活動(dòng)的商品會(huì)在具備基礎(chǔ)數(shù)據(jù)之外,還具備雙11促銷(xiāo)信息這樣的額外數(shù)據(jù),而未 參加雙11活動(dòng)的商品則只具備基礎(chǔ)數(shù)據(jù),不會(huì)具備該額外數(shù)據(jù)。
[0061] 此外,在用戶(hù)下單時(shí)還需要用戶(hù)的一些數(shù)據(jù),如用戶(hù)手機(jī)號(hào)碼、收貨地址等,由于 這些用戶(hù)元數(shù)據(jù)是客戶(hù)端上通用的,通常存放于各個(gè)業(yè)務(wù)能共享的位置,不需要從由詳情 業(yè)務(wù)引擎透?jìng)鹘o交易渲染引擎。
[0062] 用戶(hù)元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)可以為:
[0063] ''iMserMetit': { "eookie'V-//存放用戶(hù)不敏感的信息 "edlphone":"〗 2345678900' // 用戶(hù)手機(jī)號(hào)碼 iIeved々用戶(hù)等級(jí) Ui如鮮":[//用戶(hù)收貨地?止列表 { "province",,' "dty":"',, "area":"'' i-?
[0064]
[0065] 上述用戶(hù)元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)定義了用戶(hù)元數(shù)據(jù)可能包括用戶(hù)手機(jī)號(hào)碼、用戶(hù)等 級(jí)、用戶(hù)收貨地址列表(如X省X市X區(qū)等)以及其他的用戶(hù)不敏感信息等,這些數(shù)據(jù)屬于 本地的全局?jǐn)?shù)據(jù),交易渲染引擎可以直接通過(guò)共享得到該用戶(hù)元數(shù)據(jù)。
[0066] 當(dāng)詳情業(yè)務(wù)引擎將業(yè)務(wù)元數(shù)據(jù)頭傳給交易渲染引擎時(shí),交易渲染引擎開(kāi)始基于 bizMeta數(shù)據(jù)以及全局的userMeta數(shù)據(jù)進(jìn)行初步的原生植染,經(jīng)原生植染后,基本的頁(yè)面 框架已經(jīng)基本上展現(xiàn)出來(lái)。
[0067] 交易渲染引擎還可以通知補(bǔ)償引擎去服務(wù)器側(cè)獲取補(bǔ)償數(shù)據(jù)(也即第二數(shù)據(jù)), 如校驗(yàn)信息、庫(kù)存信息等,以確保交易數(shù)據(jù)的完整性。假設(shè)補(bǔ)償數(shù)據(jù)中有需要渲染的數(shù)據(jù), 則將其發(fā)送給交易渲染引擎,將這份需要渲染的數(shù)據(jù)通過(guò)二次渲染補(bǔ)償?shù)较聠雾?yè),從而得 到最終的完整的下單頁(yè)面。
[0068] 在本申請(qǐng)實(shí)施例中,通過(guò)手機(jī)淘寶購(gòu)物進(jìn)入下單頁(yè)面時(shí),只需要在獲取到商品詳 情頁(yè)或購(gòu)物車(chē)頁(yè)面的數(shù)據(jù)后即可對(duì)下單頁(yè)面進(jìn)行原生渲染,無(wú)需等待向服務(wù)器請(qǐng)求的庫(kù)存 信息,且由于原生渲染完全是基于本地已經(jīng)存在的數(shù)據(jù)的透?jìng)?,網(wǎng)絡(luò)開(kāi)銷(xiāo)為零,用戶(hù)可以及 時(shí)的看到初步的下單頁(yè)面,而不僅僅是等待圖標(biāo),從而提升了用戶(hù)體驗(yàn)。在用戶(hù)點(diǎn)擊提交訂 單之前,補(bǔ)償線(xiàn)程已基本完成第二數(shù)據(jù)請(qǐng)求和補(bǔ)償渲染等操作,為用戶(hù)呈現(xiàn)完整的下單頁(yè) 面。
[0069] 采用本申請(qǐng)實(shí)施例所提供的頁(yè)面生成方法,頁(yè)面生成的速度更快,無(wú)需用戶(hù)長(zhǎng)時(shí) 間的等待,可以給普通消費(fèi)者帶來(lái)更好的購(gòu)物體驗(yàn)。
[0070] 具體實(shí)施中,本申請(qǐng)實(shí)施例所提供的技術(shù)方案可以在弱網(wǎng)絡(luò)、或者4G/WIFI等較 快網(wǎng)絡(luò)下實(shí)施,且還可以進(jìn)一步通過(guò)網(wǎng)絡(luò)環(huán)境來(lái)判斷是采用現(xiàn)有的直接渲染模式、還是采 用本申請(qǐng)實(shí)施例所提供的先原生渲染再補(bǔ)償渲染的模式。
[0071] 基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例中還提供了一種頁(yè)面生成裝置,由于這些設(shè)備 解決問(wèn)題的原理與一種頁(yè)面生成方法相似,因此這些設(shè)備的實(shí)施可以參見(jiàn)方法的實(shí)施,重 復(fù)之處不再贅述。
[0072] 圖3示出了本申請(qǐng)實(shí)施例中頁(yè)面生成裝置的結(jié)構(gòu)示意圖,如圖所示,頁(yè)面生成裝 置可以包括:
[0073] 接收模塊301,用于接收頁(yè)面訪問(wèn)請(qǐng)求;
[0074] 獲取模塊302,用于根據(jù)頁(yè)面訪問(wèn)請(qǐng)求,獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一 數(shù)據(jù),第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù);
[0075] 渲染模塊303,用于在獲取到第一數(shù)據(jù)后,根據(jù)第一數(shù)據(jù)對(duì)頁(yè)面進(jìn)行渲染。
[0076] 獲取模塊302進(jìn)一步用于從服務(wù)器獲取頁(yè)面的第二數(shù)據(jù);
[0077] 渲染模塊303進(jìn)一步用于在獲取到第二數(shù)據(jù)后,根據(jù)第二數(shù)據(jù)對(duì)頁(yè)面進(jìn)行二次渲 染。
[0078] 實(shí)施中,獲取模塊302可以具體用于從商品詳情頁(yè)面或購(gòu)物車(chē)頁(yè)面獲取商品下單 頁(yè)面的第一數(shù)據(jù);其中,第一數(shù)據(jù)為:商品標(biāo)識(shí)、商品顏色、商品尺寸、購(gòu)買(mǎi)數(shù)量、商品圖片、 商家店鋪信息等。
[0079] 實(shí)施中,獲取模塊302可以具體用于獲取商品庫(kù)存信息。
[0080] 實(shí)施中,獲取模塊302可以具體用于采用異步線(xiàn)程分別獲取與所述頁(yè)面訪問(wèn)請(qǐng)求 相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù)和第二數(shù)據(jù)。
[0081] 基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例中還提供了一種頁(yè)面生成系統(tǒng),包括上述頁(yè)面 生成裝置以及服務(wù)器;其中,服務(wù)器用于向頁(yè)面生成裝置發(fā)送第二數(shù)據(jù)。
[0082] 圖4示出了本申請(qǐng)實(shí)施例中頁(yè)面生成系統(tǒng)內(nèi)的交互示意圖,如圖所示,頁(yè)面生成 裝置先根據(jù)本地預(yù)先存儲(chǔ)的第一數(shù)據(jù)對(duì)頁(yè)面進(jìn)行渲染,在獲取到服務(wù)器返回的第二數(shù)據(jù) 后,再根據(jù)第二數(shù)據(jù)對(duì)頁(yè)面進(jìn)行二次渲染。
[0083] 本申請(qǐng)實(shí)施例所提供的頁(yè)面生成方案,針對(duì)客戶(hù)端頁(yè)面生成速度較慢導(dǎo)致用戶(hù)體 驗(yàn)不佳的問(wèn)題,將頁(yè)面渲染拆分成原生渲染和補(bǔ)償渲染兩個(gè)子流程,從而可以原生渲染后 的頁(yè)面及時(shí)呈現(xiàn)給用戶(hù),在完整頁(yè)面呈現(xiàn)之前用戶(hù)看到的不再僅僅是等待圖標(biāo),在不影響 用戶(hù)正常頁(yè)面訪問(wèn)的情況下,提升了用戶(hù)體驗(yàn)。
[0084] 為了描述的方便,以上所述裝置的各部分以功能分為各種模塊或單元分別描述。 當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各模塊或單元的功能在同一個(gè)或多個(gè)軟件或硬件中實(shí)現(xiàn)。 [0085] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序 產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí) 施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī) 可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn) 品的形式。
[0086] 本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算 機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能 的裝置。
[0087] 這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。
[0088] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì) 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖 一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0089] 盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu) 選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。
【主權(quán)項(xiàng)】
1. 一種頁(yè)面生成方法,其特征在于,包括如下步驟: 接收頁(yè)面訪問(wèn)請(qǐng)求; 根據(jù)所述頁(yè)面訪問(wèn)請(qǐng)求,獲取與所述頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),所述第 一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù); 在獲取到第一數(shù)據(jù)后,根據(jù)所述第一數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行初次渲染; 從服務(wù)器獲取所述頁(yè)面的第二數(shù)據(jù); 在獲取到所述第二數(shù)據(jù)后,根據(jù)所述第二數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行二次渲染。2. 如權(quán)利要求1所述的方法,其特征在于,所述頁(yè)面為商品下單頁(yè)面; 所述獲取與頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù),具體包括: 從商品詳情頁(yè)面或購(gòu)物車(chē)頁(yè)面獲取所述商品下單頁(yè)面的第一數(shù)據(jù); 其中,所述第一數(shù)據(jù)至少包括以下一種:商品標(biāo)識(shí)、商品顏色、商品尺寸、購(gòu)買(mǎi)數(shù)量、商 品圖片、商家店鋪信息。3. 如權(quán)利要求2所述的方法,其特征在于,第二數(shù)據(jù)為商品庫(kù)存信息。4. 如權(quán)利要求1所述的方法,其特征在于,所述獲取第一數(shù)據(jù)和第二數(shù)據(jù),具體包括: 采用異步線(xiàn)程分別獲取與所述頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù)和第二數(shù)據(jù)。5. -種頁(yè)面生成裝置,其特征在于,包括: 接收模塊,用于接收頁(yè)面訪問(wèn)請(qǐng)求; 獲取模塊,用于根據(jù)所述頁(yè)面訪問(wèn)請(qǐng)求,獲取與所述頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第 一數(shù)據(jù),所述第一數(shù)據(jù)為預(yù)先存儲(chǔ)于本地的數(shù)據(jù); 渲染模塊,用于在獲取到第一數(shù)據(jù)后,根據(jù)所述第一數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行初次渲染; 所述獲取模塊進(jìn)一步用于從服務(wù)器獲取所述頁(yè)面的第二數(shù)據(jù);所述渲染模塊進(jìn)一步用 于在獲取到所述第二數(shù)據(jù)后,根據(jù)所述第二數(shù)據(jù)對(duì)所述頁(yè)面進(jìn)行二次渲染。6. 如權(quán)利要求5所述的裝置,其特征在于,所述獲取模塊具體用于從商品詳情頁(yè)面或 購(gòu)物車(chē)頁(yè)面獲取商品下單頁(yè)面的第一數(shù)據(jù);其中,所述第一數(shù)據(jù)至少包括以下一種:商品 標(biāo)識(shí)、商品顏色、商品尺寸、購(gòu)買(mǎi)數(shù)量、商品圖片、商家店鋪信息。7. 如權(quán)利要求6所述的裝置,其特征在于,所述獲取模塊具體用于獲取商品庫(kù)存信息。8. 如權(quán)利要求5所述的裝置,其特征在于,所述獲取模塊具體用于采用異步線(xiàn)程分別 獲取與所述頁(yè)面訪問(wèn)請(qǐng)求相對(duì)應(yīng)的頁(yè)面的第一數(shù)據(jù)和第二數(shù)據(jù)。9. 一種頁(yè)面生成系統(tǒng),其特征在于,包括如權(quán)利要求5至8任一所述的頁(yè)面生成裝置以 及服務(wù)器;所述服務(wù)器用于向所述頁(yè)面生成裝置發(fā)送所述第二數(shù)據(jù)。
【文檔編號(hào)】G06F17/30GK105843814SQ201510018604
【公開(kāi)日】2016年8月10日
【申請(qǐng)日】2015年1月14日
【發(fā)明人】孫楠
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司