專利名稱:一種菜單實現的方法、系統和裝置的制作方法
技術領域:
本申請涉及網絡技術領域,特別是涉及一種菜單實現的方法、系統和裝置。
背景技術:
隨著互聯網的發展,越來越多的人們選擇通過網絡來獲取所需的信息。從互聯網 所承載的海量信息中,人們獲得工作、生活和娛樂等方方面面的信息。而互聯網將用戶所需 的信息呈現與反饋給用戶的形式是通過菜單的形式進行展示。用于打開頁面進行瀏覽,當從中選擇了自己感興趣的菜單時,用戶通過點擊該菜 單而獲取該菜單所承載的內容,該菜單所承載的內容包括菜單展現形式和菜單數據兩方 面。現有技術中,每一個菜單的菜單展現形式和菜單數據是以整體的形式實現,統一進行加 載。此時當菜單數據發生變化時,該菜單的展現形式也隨著需要改變。并且,當用戶請求的 菜單中包含子菜單時,用戶只瀏覽到請求的菜單,但此時系統已將該菜單以及該菜單包含 的子菜單一并加載下來。在實現本申請的過程中,發明人發現現有技術至少存在如下問題現有技術中,菜單展現形式與菜單數據交雜在一起,當兩者中的任一個發生變化 時,需要同時對二者進行更新與維護。并且,如果存在多個系統時,需要對每一個系統進行 分別維護,容易導致混亂,可維護性低。此外,當請求某一菜單時,該菜單包括的所有子菜單也一并加載,加載速度慢,降 低用戶體驗感。
發明內容
本申請提供一種菜單實現的方法、系統和裝置,用于提高系統的可維護性和用戶 體驗感。本申請提供一種菜單實現的方法,包括獲取瀏覽器所接收的獲取菜單的菜單請求;根據所述菜單請求,從應用服務器獲取對應的菜單展現形式和菜單數據請求,并 將所述菜單數據請求發送給菜單數據服務器,使所述菜單數據服務器根據所述菜單數據請 求獲取所述菜單數據;獲取所述菜單數據服務器所獲取的菜單數據;將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應;將所述菜單請求響應發送給所述瀏覽器。其中,所述根據所述菜單請求,獲取對應的菜單展現形式包括根據所述菜單請 求,獲取與所述菜單請求對應的應用類型;根據所述應用類型,獲取與所述應用類型對應的 菜單展現形式。其中,所述根據所述菜單請求,獲取對應的菜單數據請求包括根據所述菜單請 求,獲取與所述所菜單請求對應的菜單ID ;根據所述菜單ID,獲取與所述菜單ID對應的菜單數據請求。其中,所述菜單數據服務器根據所述菜單數據請求獲取所述菜單數據包括所述菜單數據服務器從數據庫中獲取所述菜單數據;和/或所述菜單數據服務器 從緩存服務器中獲取所述菜單數據;所述菜單數據服務器從緩存服務器中獲取所述菜單數據具體包括所述菜單數據 服務器將所述菜單數據請求發送給緩存服務器,使所述緩存服務器根據所述菜單數據請求 獲取所述菜單數據;所述緩存服務器成功獲取所述菜單數據時,所述菜單數據服務器獲取 所述緩存服務器所獲取的所述菜單數據;所述緩存服務器未成功獲取所述菜單數據時,所 述菜單數據服務器從所述數據庫中獲取所述菜單數據。
其中,還包括菜單數據服務器更新所述菜單數據。其中,所述將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應包括根據所述菜單展現形式進行界面渲染;將所述菜單數據添加到所述菜單展現形式中。其中,包括更新所述菜單展現形式。本申請提供一種菜單實現的系統,包括應用服務器,用于獲取瀏覽器所接收的獲取菜單的菜單請求;根據所述菜單請求, 從本地獲取對應的菜單展現形式和菜單數據請求,并將所述菜單數據請求發送給菜單數據 服務器,使所述菜單數據服務器根據所述菜單數據請求獲取所述菜單數據;獲取所述菜單 服務器所獲取的菜單數據;將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應; 將所述菜單請求響應發送給所述瀏覽器;菜單數據服務器,用于獲取所述應用服務器所發送的菜單數據請求;根據所述菜 單數據請求獲取所述菜單數據;將獲取的所述菜單數據發送給所述應用服務器。本申請提供一種菜單數據服務器,包括第一獲取模塊,用于獲取所述應用服務器所發送的菜單數據請求;第二獲取模塊,用于根據所述第一獲取模塊獲取的所述菜單數據請求獲取所述菜 單數據;發送模塊,用于將所述第二獲取模塊獲取的所述菜單數據發送給所述應用服務
ο其中,所述第二獲取模塊具體用于從數據庫中獲取所述菜單數據;和/或從緩存服務器中獲取所述菜單數據;從緩存服務器中獲取所述菜單數據具體包括將所述菜單數據請求發送給緩存服 務器,使所述緩存服務器根據所述菜單數據請求獲取所述菜單數據;所述緩存服務器成功 獲取所述菜單數據時,獲取所述緩存服務器所獲取的所述菜單數據;所述緩存服務器未成 功獲取所述菜單數據時,從所述數據庫中獲取所述菜單數據。其中,還包括更新模塊,用于更新所述菜單數據。本申請提供一種應用服務器,包括
第一獲取模塊,用于獲取瀏覽器所接收的獲取菜單的菜單請求第二獲取模塊,用于根據所述第一獲取模塊獲取的菜單請求,從本地獲取對應的 菜單展現形式和菜單數據請求,并將所述菜單數據請求發送給菜單數據服務器,使所述菜 單數據服務器根據所述菜單數據請求獲取所述菜單數據;獲取所述菜單服務器所獲取的獲 取菜單數據;整合模塊,用于將所述第二獲取模塊獲取的菜單展現形式與所述菜單數據整合, 獲取菜單請求響應;發送模塊,用于將所述菜單請求響應發送給所述瀏覽器。其中,所述第二獲取模塊具體用于根據所述菜單請求,獲取與所述所菜單請求對 應的應用類型;根據所述應用類型,獲取與所述應用類型對應的菜單展現形式。其中,所述第二獲取模塊具體用于根據所述菜單請求,獲取與所述所菜單請求對 應的菜單ID ;根據所述菜單ID,獲取與所述菜單ID對應的菜單數據請求。其中,所述整合模塊具體用于根據所述菜單展現形式進行界面渲染;將所述菜單數據添加到所述菜單展現形式中。其中,還包括更新模塊,用于更新所述菜單展現形式。本申請具有以下優點通過本申請將菜單的菜單展現形式和菜單數據采用分布式 實現,并且只對請求的菜單進行加載,提高系統的可維護性和用戶體驗感。菜單數據服務 器根據菜單數據請求獲取菜單數據時,菜單數據服務器僅取得該菜單ID對應的菜單下面 的數據,而不是取得該菜單下的所有菜單數據,從而減少網絡流量,提高了網絡數據傳輸速度。
為了更清楚地說明本申請或現有技術中的技術方案,下面將對本申請或現有技術 描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本申請的 一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這 些附圖獲得其他的附圖。圖1為本申請中的一種菜單實現的方法的流程圖;圖2為本申請中的一種菜單實現的系統的結構示意圖;圖3為本申請中的一種瀏覽器的結構示意圖;圖4為本申請中的另一種瀏覽器的結構示意圖;圖5為本申請中的一種應用服務器的結構示意圖;圖6為本申請中的另一種應用服務器的結構示意圖;圖7為本申請中的一種菜單數據服務器的結構示意圖;圖8為本申請中的另一種菜單數據服務器的結構示意圖;圖9為本申請中的一種菜單實現的方法的流程圖;圖10為本申請中的一種菜單展現形式;圖11為本申請中的一種整合后的菜單請求響應;
圖12(a)為本申請中的菜單數據服務器根據菜單數據請求獲取菜單數據的方法 的流程圖;圖12(b)本申請中的菜單數據服務器根據菜單數據請求獲取菜單數據的方法的 流程圖;圖13為本申請中的更新菜單展現形式的方法的流程圖;圖14為本申請中的更新菜單數據的方法的流程圖;圖15為本申請中的應用服務器的結構示意圖;圖16為本申請中的應用服務器的結構示意圖;圖17為本申請中的菜單數據服務器的結構示意圖;圖18為本申請中的菜單數據服務器的結構示意圖。
具體實施例方式下面將結合本申請中的附圖,對本申請中的技術方案進行清楚、完整的描述,顯 然,所描述的實施例是本申請的一部分實施例,而不是全部的實施例。基于本申請中的實施 例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬 于本申請保護的范圍。如圖1所示,為本申請中的一種菜單實現的方法,具體包括以下步驟步驟101、獲取瀏覽器所接收的獲取菜單的菜單請求;步驟102、根據所述菜單請求,從應用服務器獲取對應的菜單展現形式和菜單數據 請求,并將所述菜單數據請求發送給菜單數據服務器,使所述菜單數據服務器根據所述菜 單數據請求獲取所述菜單數據;每一個網頁中承載的內容以菜單的形式展現,例如網頁中的導航菜單(如首 頁、公司介紹、商品信息等等)、彈出菜單(如廣告性質的菜單)等。由此可知,網頁中的 菜單包括菜單展現形式和菜單數據兩部分內容。為了便于對菜單數據進行分別的維護,將菜單展現形式和菜單數據兩部分內容分 別進行存儲,分別進行維護。其中,菜單展現形式存儲在應用服務器中,菜單數據存儲在菜 單數據服務器中。當接收到對應菜單的請求時,將分別獲取的兩部分進行整合,形成最終的菜單。步驟103、獲取所述菜單服務器所獲取的獲取菜單數據;步驟104、將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應;步驟105、將所述菜單請求響應發送給所述瀏覽器。為了實現本申請實施例中一種菜單實現的方法,本申請提供了用于該菜單實現的方法的系統,以下首先對該系統進行介紹。本申請實施例中一種菜單實現的系統,如圖2所示,主要由前端的瀏覽器210、后 端的應用服務器220和菜單數據服務器230組成。其中,瀏覽器210主要用于用戶和應用 服務器220之間的交互,應用服務器220主要用于根據瀏覽器210接收的用戶的請求,向用 戶提供相應的請求響應,而菜單數據服務器230主要用于當應用服務器220向瀏覽器210 提供請求響應時,為應用服務器220提供相應的菜單數據。具體地,上述瀏覽器210、后端的 應用服務器220和菜單數據服務器230各個裝置的主要工作原理如下
瀏覽器210,如圖3所示,該瀏覽器210主要包括接收模塊211、發送模塊212和顯 示模塊213。其中,接收模塊211主要用于接收用戶的請求和應用服務器220發送的請求響 應。具體地,當用戶瀏覽某頁面或某頁面中的某個菜單時,接收模塊211接收用戶的請求, 并將該請求通過發送模塊212發送給應用服務器220。當應用服務器220根據瀏覽器210 發送的請求,獲取到響應的請求響應時,將該請求響應發送給瀏覽器210的接收模塊211。 接收模塊211將接收到的請求響應發送給顯示模塊213,通過顯示模塊213將該請求響應呈 現給用戶。優選地,如圖 4所示,瀏覽器210還可以包括整合模塊214,用于將應用服務器220 發送的請求響應中用戶請求的頁面的菜單展現形式和菜單數據進行整合,形成相應的頁 面,作為該用戶請求的請求響應呈現給用戶。整合模塊214也可位于應用服務器220中,其 具體工作原理將在后續介紹的應用服務器220中進行介紹,此處不再贅述。應用服務器220,如圖5所示,應用服務器220主要包括接收模塊221、獲取模塊 222、整合模塊223和發送模塊224。其中,接收模塊221用于接收瀏覽器210的發送模塊 212發送的請求。其中,用戶所請求菜單是以菜單ID的形式發送給應用服務器220的。獲 取模塊222根據接收模塊221接收到的請求,獲取與該請求的應用類型對應的菜單展現形 式,其中該菜單展現形式首先根據網頁、菜單和用戶習慣等因素設計,用以提供一個框架, 例如用于首頁導航的導航菜單展現形式以橫向排列分布在網頁的頂部,用于對產品的相 關操作(瀏覽,訂購等)以縱向排列分布在網頁的一側等;其次,將上述菜單展現形式預先 存儲在應用服務器220中。此外,發送模塊224將接收模塊221接收的請求發送給菜單數 據服務器230,用于從菜單數據服務器230中獲取與所請求菜單的菜單數據。當菜單數據服 務器230獲取的所請求菜單的菜單數據后,應用服務器220的接收模塊221將接收菜單數 據服務器230接收的菜單數據。此時,整合模塊223將根據獲取模塊222獲取的所請求菜 單的展現類型和接收模塊221接收的所請求菜單的菜單數據進行整合,形成完整的菜單, 并將該菜單通過發送模塊224發送給瀏覽器210,并通過瀏覽器210顯示給用戶。優選地,如圖6所示,應用服務器220中的整合模塊223可以位于前端的瀏覽器 210中,此時應用服務器220將獲取模塊222獲取的所請求菜單的展現類型和接收模塊221 接收的所請求菜單的菜單數據分別發送給瀏覽器210,瀏覽器210根據接收的獲取模塊222 獲取的所請求菜單的展現類型和接收模塊221接收的所請求菜單的菜單數據,將二者進行 整合,形成完整的菜單,顯示給用戶。菜單數據服務器230,如圖7所示,主要包括接收模塊231、數據庫232和發送模塊 233。其中,當接收模塊231接收到應用服務器220發送的請求后,根據該請求中攜帶的菜 單ID從數據庫中獲取該菜單ID的菜單數據。隨后,通過發送模塊233將請求的菜單數據 發送給應用服務器220。優選地,由于數據庫232中的數據量龐大,每當獲取菜單數據時,便從數據量龐大 的數據庫232中進行查詢從而獲取菜單數據會大量增加查詢時間,增大請求響應時間,降 低用戶的體驗感。為了提高菜單數據的查詢速度,菜單數據服務器230,如圖8所示,還包括 菜單緩存(cache) 234,緩存234存儲有數據庫232中經常獲取的菜單數據。當菜單數據服 務器230接收到菜單數據的請求時,首先在緩存234中查詢是否有所請求菜單的菜單數據。 若緩存234中存在所請求菜單的菜單數據,則直接從緩存234中獲取菜單數據;否則,則再查詢數據庫232,從數據庫232中獲取菜單數據。
優選地,為了使數據庫232和緩存234進行配合工作,菜單數據服務器230中還包 括更新模塊235,該模塊用于將從數據庫232中獲取的菜單數據存儲在緩存234中,并對緩 存234中的數據容量以及數據及進行控制,以保證從緩存234中獲取數據的速度。為了明確菜單數據的存儲形式,以及獲取后如何與菜單展現形式進行整合,以下 將對數據庫232中菜單數據的存儲形式進行介紹。此外,由于緩存234中菜單數據的存儲 形式與數據232中的菜單數據的存儲形式相似,此處不再贅述。首先,從頁面的菜單中提取出菜單數據的相關屬性,并將菜單數據的相關屬性在 菜單數據服務器中以如下兩表的結構,其中表1為MENU表,其中的屬性為各個菜單與其他 菜單的顯示關系,表2為MENU RULE表,其中的屬性為每個菜單的展現規則。表1、MENU 表
權利要求
1.一種菜單實現的方法,其特征在于,包括 獲取瀏覽器所接收的獲取菜單的菜單請求;根據所述菜單請求,從應用服務器獲取對應的菜單展現形式和菜單數據請求,并將所 述菜單數據請求發送給菜單數據服務器,使所述菜單數據服務器根據所述菜單數據請求獲 取所述菜單數據;獲取所述菜單數據服務器所獲取的菜單數據; 將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應; 將所述菜單請求響應發送給所述瀏覽器。
2.如權利要求1所述的方法,其特征在于,所述根據所述菜單請求,獲取對應的菜單展 現形式包括根據所述菜單請求,獲取與所述菜單請求對應的應用類型;根據所述應用類 型,獲取與所述應用類型對應的菜單展現形式。
3.如權利要求1所述的方法,其特征在于,所述根據所述菜單請求,獲取對應的菜單數 據請求包括根據所述菜單請求,獲取與所述所菜單請求對應的菜單ID ;根據所述菜單ID, 獲取與所述菜單ID對應的菜單數據請求。
4.如權利要求1所述的方法,其特征在于,所述菜單數據服務器根據所述菜單數據請 求獲取所述菜單數據包括所述菜單數據服務器從數據庫中獲取所述菜單數據;和/或所述菜單數據服務器從緩 存服務器中獲取所述菜單數據;所述菜單數據服務器從緩存服務器中獲取所述菜單數據具體包括所述菜單數據服務 器將所述菜單數據請求發送給緩存服務器,使所述緩存服務器根據所述菜單數據請求獲取 所述菜單數據;所述緩存服務器成功獲取所述菜單數據時,所述菜單數據服務器獲取所述 緩存服務器所獲取的所述菜單數據;所述緩存服務器未成功獲取所述菜單數據時,所述菜 單數據服務器從所述數據庫中獲取所述菜單數據。
5.如權利要求1所述的方法,其特征在于,還包括 菜單數據服務器更新所述菜單數據。
6.如權利要求1所述的方法,其特征在于,所述將所述菜單展現形式與所述菜單數據 整合,獲取菜單請求響應包括根據所述菜單展現形式進行界面渲染; 將所述菜單數據添加到所述菜單展現形式中。
7.如權利要求1至6中任一項所述的方法,其特征在于,包括 更新所述菜單展現形式。
8.一種菜單實現的系統,其特征在于,包括應用服務器,用于獲取瀏覽器所接收的獲取菜單的菜單請求;根據所述菜單請求,從本 地獲取對應的菜單展現形式和菜單數據請求,并將所述菜單數據請求發送給菜單數據服務 器,使所述菜單數據服務器根據所述菜單數據請求獲取所述菜單數據;獲取所述菜單數據 服務器所獲取的菜單數據;將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應; 將所述菜單請求響應發送給所述瀏覽器;菜單數據服務器,用于獲取所述應用服務器所發送的菜單數據請求;根據所述菜單數 據請求獲取所述菜單數據;將獲取的所述菜單數據發送給所述應用服務器。
9.一種菜單數據服務器,其特征在于,包括第一獲取模塊,用于獲取所述應用服務器所發送的菜單數據請求; 第二獲取模塊,用于根據所述第一獲取模塊獲取的所述菜單數據請求獲取所述菜單數據;發送模塊,用于將所述第二獲取模塊獲取的所述菜單數據發送給所述應用服務器。
10.如權利要求9所述的菜單數據服務器,其特征在于,所述第二獲取模塊具體用于 從數據庫中獲取所述菜單數據;和/或從緩存服務器中獲取所述菜單數據;從緩存服務器中獲取所述菜單數據具體包括將所述菜單數據請求發送給緩存服務 器,使所述緩存服務器根據所述菜單數據請求獲取所述菜單數據;所述緩存服務器成功獲 取所述菜單數據時,獲取所述緩存服務器所獲取的所述菜單數據;所述緩存服務器未成功 獲取所述菜單數據時,從所述數據庫中獲取所述菜單數據。
11.如權利要求9或10所述的菜單數據服務器,其特征在于,還包括 更新模塊,用于更新所述菜單數據。
12.—種應用服務器,其特征在于,包括第一獲取模塊,用于獲取瀏覽器所接收的獲取菜單的菜單請求; 第二獲取模塊,用于根據所述第一獲取模塊獲取的菜單請求,從本地獲取對應的菜單 展現形式和菜單數據請求,并將所述菜單數據請求發送給菜單數據服務器,使所述菜單數 據服務器根據所述菜單數據請求獲取所述菜單數據;獲取所述菜單數據服務器所獲取的菜 單數據;整合模塊,用于將所述第二獲取模塊獲取的菜單展現形式與所述菜單數據整合,獲取 菜單請求響應;發送模塊,用于將所述菜單請求響應發送給所述瀏覽器。
13.如權利要求12所述的應用服務器,其特征在于,所述第二獲取模塊具體用于根據 所述菜單請求,獲取與所述所菜單請求對應的應用類型;根據所述應用類型,獲取與所述應 用類型對應的菜單展現形式。
14.如權利要求12所述的應用服務器,其特征在于,所述第二獲取模塊具體用于根據 所述菜單請求,獲取與所述所菜單請求對應的菜單ID ;根據所述菜單ID,獲取與所述菜單 ID對應的菜單數據請求。
15.如權利要求12所述的應用服務器,其特征在于,所述整合模塊具體用于 根據所述菜單展現形式進行界面渲染;將所述菜單數據添加到所述菜單展現形式中。
16.如權利要求12至15中任一項所述的應用服務器,其特征在于,還包括 更新模塊,用于更新所述菜單展現形式。
全文摘要
本申請公開了一種菜單實現的方法、系統和裝置,該方法包括獲取瀏覽器所接收的獲取菜單的菜單請求;根據所述菜單請求,從應用服務器獲取對應的菜單展現形式和菜單數據請求,并將所述菜單數據請求發送給菜單數據服務器,使所述菜單數據服務器根據所述菜單數據請求獲取所述菜單數據;獲取所述菜單數據服務器所獲取的菜單數據;將所述菜單展現形式與所述菜單數據整合,獲取菜單請求響應;將所述菜單請求響應發送給所述瀏覽器。通過本申請,提高了系統的可維護性和用戶體驗感。
文檔編號G06F17/30GK102135962SQ20101010043
公開日2011年7月27日 申請日期2010年1月25日 優先權日2010年1月25日
發明者錢超 申請人:阿里巴巴集團控股有限公司