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