電商項目商品詳情頁架構設計

當用戶進入京東首頁,點擊搜索手機進入搜索頁面,點擊一款手機進入商品詳情頁面,主要展現商品的信息,主要分爲三塊信息:html

  1:基本信息:展現商品的基本信息,包括sku價格等基本信息.ajax

2:商品描述(商品詳情頁下面商品信息的tab頁面的第一個默認選中頁面)redis

3:商品的規格參數(商品詳情頁下面商品信息的tab頁面中第一個商品描述以外的其餘頁面包括商品的規格參數,評論,售後保障下面箭頭所示等信息.)數據庫

 

 

 

商品詳情頁項目架構設計:跨域

  1:商品的基本信息是用戶在商城首頁輸入手機後再搜索引擎中返回商品結構,搜索引擎索引中只保存商品列表中的一部分商品展現信息,當用戶點擊一個商品就進入了商品詳情頁.緩存

    點擊進入後第一個展現的就是商品的基本信息包括sku(顏色,尺寸等)規格參數,這些基本信息能夠在商品顯示商品詳情頁面的時候就查詢顯示個用戶看.服務器

  2:商品描述的內容每每比較多,若是在加載商品詳情頁面的時候就顯示出來就影響加載速度,爲了快速響應用戶,商品的描述能夠延遲加載,延遲一秒鐘加載。用js控制頁面加載完cookie

    一秒鐘之後再去用ajax去調用本項目的controller,controller去調用遠程的rest接口獲取而後返回商品描述html顯示在頁面上面,數據結構

    設置延遲一秒鐘能夠用js的setTimeout方法,setTimeout設置延遲一秒鐘,setTimeout只會執行一次.架構

    這裏的查詢還能夠經過jsoup直接調用遠程rest服務.這裏推薦使用調用前面說的controller方式。

  3:商品的規格參數和評論等其餘的tabs信息(按需加載)能夠按需加載,當用戶點擊商品規格這些tabs標籤頁是在去加載,若是用戶不點擊就不用去查詢,能夠減小服務器壓力。

    一樣這裏的查詢和商品2中的同樣,能夠ajax查詢本地controller在去調用rest服務,也能夠在頁面上面直接使用jsoup跨域去調用遠程的rest服務.

 

緩存: 查詢商品的基本信息和商品的描述和規格參數是三個服務,也就是說一個商品詳情頁面的信息展現分三個服務三個步驟查詢,

    固然也能夠根據實際狀況分得更細,爲了減小數據庫查詢壓力,可使用redis對一個商品的上面三個信息進行緩存,

    好比能夠的命名方式能夠爲 "product:productdetail:123123"的方式 123123是具體一個商品的id,前面的product:productdetail

    是模塊名字.redis數據結構推薦使用key,value 的string方式,由於hash等數據結構對設置過時時間支持得不太方便,不能爲hash裏面的單獨key設置一個過時時間

    這裏能夠設置redis緩存過時時間爲一天,當一個用戶訪問之後一天之內若是沒有其餘人訪問這個商品的詳情頁面,緩存就過時,

    若是有人訪問這個商品的詳情頁面這裏能夠更新redis中的商品信息過時時間(這樣作的好處是熱門商品能夠加長過時時間,減小數據庫查詢次數)

    同時爲了數據的實時性,也要開放一個刪除redis裏面的商品的接口,讓修改和刪除了商品的時候調用。

    更詳細的京東詳情頁項目架構設計參考:http://blog.csdn.net/hunci/article/details/50424760#0-qzone-1-18510-d020d2d2a4e8d1a374a433f596ad1440

    作電商網站能夠多參考京東淘寶的功能是怎麼實現的,好比是否使用ajax刪除購入車,購物車是否使用cookie仍是數據庫,

    京東的購物車若是沒有登陸就是用的cookie若是用了就是用的數據庫(應該是redis)。多參考他們的用戶體驗。

相關文章
相關標籤/搜索