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


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

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

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

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

 

 

 

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

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

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

  2:商品描述的內容往往比較多,如果在加載商品詳情頁面的時候就顯示出來就影響加載速度,為了快速響應用戶,商品的描述可以延遲加載,延遲一秒鍾加載。用js控制頁面加載完

    一秒鍾以后再去用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)。多參考他們的用戶體驗。

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM