CN102135962A - 一种菜单实现的方法、系统和装置 - Google Patents
一种菜单实现的方法、系统和装置 Download PDFInfo
- Publication number
- CN102135962A CN102135962A CN2010101004317A CN201010100431A CN102135962A CN 102135962 A CN102135962 A CN 102135962A CN 2010101004317 A CN2010101004317 A CN 2010101004317A CN 201010100431 A CN201010100431 A CN 201010100431A CN 102135962 A CN102135962 A CN 102135962A
- Authority
- CN
- China
- Prior art keywords
- menu
- menu data
- request
- server
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种菜单实现的方法、系统和装置,该方法包括:获取浏览器所接收的获取菜单的菜单请求;根据所述菜单请求,从应用服务器获取对应的菜单展现形式和菜单数据请求,并将所述菜单数据请求发送给菜单数据服务器,使所述菜单数据服务器根据所述菜单数据请求获取所述菜单数据;获取所述菜单数据服务器所获取的菜单数据;将所述菜单展现形式与所述菜单数据整合,获取菜单请求响应;将所述菜单请求响应发送给所述浏览器。通过本申请,提高了系统的可维护性和用户体验感。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种菜单实现的方法、系统和装置。
背景技术
随着互联网的发展,越来越多的人们选择通过网络来获取所需的信息。从互联网所承载的海量信息中,人们获得工作、生活和娱乐等方方面面的信息。而互联网将用户所需的信息呈现与反馈给用户的形式是通过菜单的形式进行展示。
用于打开页面进行浏览,当从中选择了自己感兴趣的菜单时,用户通过点击该菜单而获取该菜单所承载的内容,该菜单所承载的内容包括菜单展现形式和菜单数据两方面。现有技术中,每一个菜单的菜单展现形式和菜单数据是以整体的形式实现,统一进行加载。此时当菜单数据发生变化时,该菜单的展现形式也随着需要改变。并且,当用户请求的菜单中包含子菜单时,用户只浏览到请求的菜单,但此时系统已将该菜单以及该菜单包含的子菜单一并加载下来。
在实现本申请的过程中,发明人发现现有技术至少存在如下问题:
现有技术中,菜单展现形式与菜单数据交杂在一起,当两者中的任一个发生变化时,需要同时对二者进行更新与维护。并且,如果存在多个系统时,需要对每一个系统进行分别维护,容易导致混乱,可维护性低。
此外,当请求某一菜单时,该菜单包括的所有子菜单也一并加载,加载速度慢,降低用户体验感。
发明内容
本申请提供一种菜单实现的方法、系统和装置,用于提高系统的可维护性和用户体验感。
本申请提供一种菜单实现的方法,包括:
获取浏览器所接收的获取菜单的菜单请求;
根据所述菜单请求,从应用服务器获取对应的菜单展现形式和菜单数据请求,并将所述菜单数据请求发送给菜单数据服务器,使所述菜单数据服务器根据所述菜单数据请求获取所述菜单数据;
获取所述菜单数据服务器所获取的菜单数据;
将所述菜单展现形式与所述菜单数据整合,获取菜单请求响应;
将所述菜单请求响应发送给所述浏览器。
其中,所述根据所述菜单请求,获取对应的菜单展现形式包括:根据所述菜单请求,获取与所述菜单请求对应的应用类型;根据所述应用类型,获取与所述应用类型对应的菜单展现形式。
其中,所述根据所述菜单请求,获取对应的菜单数据请求包括:根据所述菜单请求,获取与所述所菜单请求对应的菜单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表
ID | PARENT_ID | NAME | STATUS | SORT_BY | REF_ID |
XXX | XXX | XXX | XXX | XXX | XXX |
其中,属性ID为该菜单的菜单ID,用于唯一标识该菜单,例如:该ID为20,1002等等。
属性PARENT_ID,为菜单ID所对应的菜单的父菜单,通过该属性设置各个不同级别的菜单之间的关系。当PARENT_ID=0时,表示该菜单ID对应的菜单为顶级菜单;当PARENT_ID=1002时,表示1002对应的菜单为该菜单ID对应的菜单的父菜单,即该菜单ID对应的菜单为菜单ID为1002对应的菜单的子菜单。
属性NAME,为菜单ID所对应的菜单的名称,用于形象地表征该菜单的内容,例如:NAME=“供求信息”,则表示该菜单的内容为供求信息。
属性STATUS,用于表征该菜单ID对应的菜单的状态。其取值为:online(上线)或offline(下线),其中online为默认取值。
属性SORT_BY,用于表征同级别的菜单之间在展现时的菜单排序,其取值为自然数和0,其中“0”为默认值。优选地,同级别的菜单按照SORT_BY的取值由小到大的顺序进行排列。
属性REF_ID,为该菜单ID对应的显示页面,其取值为其他菜单ID,默认值为-1,表示不引用其他菜单。即点击菜单ID与单独点击REF_ID,其对应的显示页面的效果是一样的。其具体应用将在后续的说明中以图例的形式进行详细的解释,此处不再赘述。
表2、MENU_RULE表
ID | MENU_ID | URL | RULE | STYLE |
XXX | XXX | XXX | XXX | XXX |
属性ID,菜单的ID。
属性MENU ID,对应于表1中的属性ID。
属性URL,为该ID对应的菜单URL(显示页面),预先设置并存储。例如:http://tpurl/paidservices/winport_service.htm。
属性RULE,用于表示菜单显示规则,规则用″&″或″|″分隔,″|″优先级大于″&″。只有符合规则,才会获取到相应URL。例如:与http://tpurl/paidservices/winport_service.htm对应的RULE为memberLevel=tp。
属性STYLE,为菜单样式,其格式:样式类型_样式值,多个用′|′分隔,例如:STYLE_GRAY|TARGET_BLANK|ICON_HOT,其中STYLE_GRAY表示该菜单的样式类型为GRAY(变灰),TARGET_BLANK表示再打开一个页面,ICON_HOT表示进行显著标识,其中′|′只是″分隔符″,不是″或关系″。
以上对菜单数据的系统以及数据库中的菜单数据的存储形式进行介绍,后续将结合具体的实施例对上述菜单数据的系统的应用进行进一步的介绍。
如图9所示,为本申请中的一种菜单实现的方法,具体包括以下步骤:
步骤201、浏览器接收用户的获取菜单的菜单请求,并将该菜单请求发送给应用服务器。
步骤202、应用服务器根据接收的菜单请求,并获取与该菜单请求对应的菜单数据展现形式和菜单数据请求。
其中,菜单展现形式首先根据网页、菜单和用户习惯等因素设计,用以提供一个框架,例如:用于首页导航的导航菜单展现形式以横向排列分布在网页的顶部,用于对产品的相关操作(浏览,订购等)以纵向排列分布在网页的一侧等;其次,将上述菜单展现形式预先存储在应用服务器中。当接收到菜单请求时,应用服务器直接从本地获取存储的菜单展现形式。
其中,根据所述菜单请求,获取对应的菜单展现形式包括:根据所述菜单请求,获取与所述所菜单请求对应的应用类型;根据所述应用类型,获取与所述应用类型对应的菜单展现形式。例如:当应用为网站中的新闻栏目时,其拥有自己的菜单展现形式;当应用为网站中的社区栏目时,其拥有自己的菜单展现形式。当然,为了便于维护,可将二者的展现形式统一。
本请求实施例中以如图10所示的一种菜单展现形式为例进行说明。
根据所述菜单请求,获取对应的菜单数据请求包括:根据所述菜单请求,获取与所述所菜单请求对应的菜单ID;根据所述菜单ID,获取与所述菜单ID对应的菜单数据请求。例如:该菜单ID为1002。
步骤203、应用服务器向菜单数据服务器发送菜单数据请求。
步骤204、菜单数据服务器根据菜单数据请求,获取菜单数据。
应用服务器每次传递一个菜单ID到菜单数据服务器,此时菜单数据服务器仅取得该菜单ID对应的菜单下面的数据,而不是取得该菜单下的所有菜单数据,即:菜单数据仅包括该菜单本层次的数据,而该菜单内所包含的菜单(子层次)的数据将不被获取,从而减少网络流量。
本申请实施例中以获取的菜单数据如表3和表4所示为例进行说明。
表3、MENU表
ID | PARENT_ID | NAME | STATUS | SORT_BY | REF_ID |
1002 | 0 | 信息管理 | online | 2 | 21 |
20 | 1002 | 求购信息 | online | 1 | -1 |
21 | 1002 | 供应信息 | online | 2 | -1 |
22 | 1002 | 公司介绍 | online | 3 | -1 |
其中,ID为1002的菜单信息管理,由于其PARENT_ID=0,所以其为顶级菜单,SORT_BY=2表示其在页面上的菜单顺序为第二个菜单,REF_ID=20表示该页面显示时,对应的显示页面为ID为20的菜单。其中,ID为20、21和22的菜单为ID为1002的菜单的子菜单,其排列顺序按照SORT_BY值从小到大依次为20、21和22,且三者REF_ID=-1,即三者未引用其他菜单。根据表3所示,获取的菜单数据为如下所示:
信息管理:ID:1002
求购信息:id:20,sortBy:1,...
供应信息:id:21,sortBy:2,...
公司介绍:id:22,sortBy:3,...
.....
因为不同类型的会员的URL是不一样的,样式可能也不一样。表结构里面就会存储如表4所示的数据:
表4、MENU_RULE表
ID | MENU_ID | URL | RULE | STYLE |
30 | 22 | http://tpurl/paidservices/winport_service.htm | memberLevel=free | |
31 | 22 | http://freeurl/album/set_album_effects.htm | memberLevel=tp | STYLE_GRAY |
根据表3和表4,菜单数据服务器获取到的菜单数据,如下所示:
信息管理:ID:1002
求购信息:id:20,sortBy:1,...
供应信息:id:21,sortBy:2,
http://freeurl/album/set_album_effects.htm,style:STYLE_GRAY,...
公司介绍:id:22,sortBy:3,...
.....
步骤205、菜单数据服务器将获取的菜单数据发送给应用服务器。
应用服务器先向菜单数据服务器请求数据,当菜单数据服务器获取菜单数据后,向应用服务器返回一个json或xml格式的数据。应用服务器通过javaScript解析所接收的json或xml数据,从中获取菜单请求所需要的菜单数据。
步骤206、应用服务器将获取的该菜单请求的菜单展现形式与菜单数据进行整合,形成菜单请求响应。
具体地,应用服务器将获取的该菜单请求的菜单展现形式与菜单数据进行整合,形成菜单请求响应,如图11所示。
步骤207、应用服务器将该菜单请求响应发送给浏览器,使浏览器将该菜单请求响应展现给用户。
步骤208、浏览器将接收的该菜单请求响应展现给用户。
需要说明的是,菜单展现形式与菜单数据进行整合的过程可以在应用服务器端实现,也可以在浏览器端实现。
如图12(a)和图12(b)所示,为本申请中的菜单数据服务器根据菜单数据请求获取菜单数据的方法,具体包括以下步骤:
步骤301、菜单数据服务器将菜单数据请求发送给cache(缓存)服务器。
具体地,首先菜单数据服务器根据菜单请求,根据所述菜单请求,获取与所述菜单请求对应的菜单ID;菜单数据服务器根据所述菜单ID,获取与所述菜单ID对应的菜单数据请求。
菜单数据服务器将携带菜单ID的菜单数据请求发送给cache服务器,使cache服务器根据该菜单ID获取与之对应的菜单数据。
步骤302、cache服务器判断是否存在该菜单数据请求所需的数据。
具体地,cache服务器判断是否存在该菜单数据请求所需的数据具体包括以下两种情况中的任一种:
当cache服务器判断不存在该菜单数据请求所需的数据时,转到步骤304;
当cache服务器判断存在该菜单数据请求所需的数据时,转到步骤303。
步骤303、cache服务器获取所需的数据,转到步骤305。
步骤304、菜单数据服务器将菜单数据请求发送到数据库,从数据库中获取该菜单数据请求所需的数据。
步骤305、菜单数据服务器接收所需的数据。
其中,返回菜单数据格式:可以是xml形式,或者json格式,具体参数如下格式:
var roots={menu:[
{id:0,name:″菜单1″,url:″http://***″}
{id:1,name:″菜单2″,url:″http://***″}
.....
]}
本申请实施例中,菜单数据服务器先从cache服务器获取所需数据,当cache服务器中不存在所需数据时,菜单数据服务器则无法获取所需数据,转而从数据库获取所需数据。若菜单数据服务器直接从数据库中获取所需数据,则需要通过计算从数据库中获取所需数据,但由于数据库中的信息十分丰富,数据量较大,若每一次都直接从数据库中获取所需数据,则需要大量的计算量,占用系统资源并增加的响应时间。通过cache服务器,则可减少运算量,提高响应时间。优选地,当菜单数据服务器从数据库中获取所需数据后,菜单数据服务器根据预设的运算规则取得数据,并把数据放到cache服务器中,以便于下一次获取同样的数据。优选地,随着数据请求的增多,cache服务器中的数据也随着增多,为了保证数据获取的效率,对cache服务器进行容量设置,并当cache服务器存储的内容超过该容量时,对存储的内容设置优先存储,或对长期未对其进行获取的数据进行删除,以便随时更新cache服务器,从而确保数据获取的效率。
如图13所示,为本申请中的更新菜单展现形式的方法,具体包括以下步骤:
步骤401、应用服务器获取需要进行展现形式更新的菜单。
步骤402、应用服务器获取该菜单的应用类型。
步骤403、应用服务器根据该应用类型,获取对应的菜单展现形式。
步骤404、应用服务器更新该菜单展现形式。
步骤405、应用服务器保存更新后的菜单展现形式。
优选地,上述不同应用类型的菜单展现形式可以制作成模板,以供调用。优选地,同一应用类型的菜单可以对应多个菜单展现形式,不同应用类型的菜单也可对应同一个菜单展现形式。
如图14所示,为本申请中的更新菜单数据的方法,具体包括以下步骤:
步骤501、菜单数据服务器所要更新的菜单。
步骤502、菜单数据服务器根据所要更新的菜单,获取该菜单的菜单ID。
步骤503、菜单数据服务器根据菜单ID,从数据库中获取该菜单数据。
步骤504、菜单数据服务器根据更新内容,更新数据库中该菜单数据的内容。
步骤505、菜单数据服务器判断cache服务器中是否存在与该菜单ID对应的菜单数据。
具体地,菜单数据服务器判断cache服务器中是否存在与该菜单ID对应的菜单数据具体包括以下两种情况中的任一种:
当菜单数据服务器判断cache服务器中存在与该菜单ID对应的菜单数据时,转到步骤506;
当菜单数据服务器判断cache服务器中不存在与该菜单ID对应的菜单数据时,转到步骤507。
步骤506、菜单数据服务器更新cache服务器中该菜单数据的内容。
具体地,菜单数据服务器更新cache服务器中该菜单数据的内容具体包括以下两种情况中的任一种:
(a)菜单数据服务器根据更新内容,直接对cache服务器中对应的内容进行更新。
(b)菜单数据服务器将数据库中更新后的菜单数据放到cache服务器,更新cache服务器中原有数据。
步骤507、结束。
当然,上述数据库的更新也可由数据库自身完成,优选地,由数据库对cache服务器中的对应数据进行更新。
本申请实施例提供一种菜单实现的系统,包括:
应用服务器,用于获取浏览器所接收的获取菜单的菜单请求;根据所述菜单请求,从本地获取对应的菜单展现形式和菜单数据请求,并将所述菜单数据请求发送给菜单数据服务器,使所述菜单数据服务器根据所述菜单数据请求获取所述菜单数据;获取所述菜单服务器所获取的获取菜单数据;将所述菜单展现形式与所述菜单数据整合,获取菜单请求响应;将所述菜单请求响应发送给所述浏览器;
菜单数据服务器,用于获取所述应用服务器所发送的菜单数据请求;根据所述菜单数据请求获取所述菜单数据;将获取的所述菜单数据发送给所述应用服务器。
本申请实施例提供一种应用服务器,如图15所示,应用服务器600包括:
第一获取模块610,用于获取浏览器所接收的获取菜单的菜单请求;
第二获取模块620,用于根据所述第一获取模块610获取的菜单请求,从本地获取对应的菜单展现形式和菜单数据请求,并将所述菜单数据请求发送给菜单数据服务器,使所述菜单数据服务器根据所述菜单数据请求获取所述菜单数据;获取所述菜单服务器所获取的获取菜单数据;
整合模块630,用于将所述第二获取模块620获取的菜单展现形式与所述菜单数据整合,获取菜单请求响应;
发送模块640,用于将所述菜单请求响应发送给所述浏览器。
其中,所述第二获取模块620具体用于:根据所述菜单请求,获取与所述所菜单请求对应的应用类型;根据所述应用类型,获取与所述应用类型对应的菜单展现形式。
其中,所述第二获取模块620具体用于:根据所述菜单请求,获取与所述所菜单请求对应的菜单ID;根据所述菜单ID,获取与所述菜单ID对应的菜单数据请求。
其中,所述整模块630具体用于:
根据所述菜单展现形式进行界面渲染;
将所述菜单数据添加到所述菜单展现形式中。
其中,应用服务器600,如图16所示,还包括:
更新模块650,用于更新所述菜单展现形式。
本申请实施例提供一种菜单数据服务器,如图17所示,菜单数据服务器700包括:
第一获取模块710,用于获取所述应用服务器所发送的菜单数据请求;
第二获取模块720,用于根据所述第一获取模块710获取的菜单数据请求获取所述菜单数据;
发送模块730,用于将第二获取模块720获取的所述菜单数据发送给所述菜单数据服务器。
其中,第二获取模块720具体用于:
从数据库中获取所述菜单数据;和/或从缓存服务器中获取所述菜单数据;
从缓存服务器中获取所述菜单数据具体包括:将所述菜单数据请求发送给缓存服务器,使所述缓存服务器根据所述菜单数据请求获取所述菜单数据;所述缓存服务器成功获取所述菜单数据时,获取所述缓存服务器所获取的所述菜单数据;所述缓存服务器未成功获取所述菜单数据时,从所述数据库中获取所述菜单数据。
其中,菜单数据服务器700,如图18所示,还包括:
更新模块740,用于更新所述菜单数据。
本申请具有以下优点:通过本申请将菜单的菜单展现形式和菜单数据采用分布式实现,并且只对请求的菜单进行加载,提高系统的可维护性和用户体验感。菜单数据服务器根据菜单数据请求获取菜单数据时,菜单数据服务器仅取得该菜单ID对应的菜单下面的数据,而不是取得该菜单下的所有菜单数据,从而减少网络流量,提高了网络数据传输速度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本申请的保护范围。
Claims (16)
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中任一项所述的应用服务器,其特征在于,还包括:
更新模块,用于更新所述菜单展现形式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101004317A CN102135962A (zh) | 2010-01-25 | 2010-01-25 | 一种菜单实现的方法、系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101004317A CN102135962A (zh) | 2010-01-25 | 2010-01-25 | 一种菜单实现的方法、系统和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102135962A true CN102135962A (zh) | 2011-07-27 |
Family
ID=44295750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101004317A Pending CN102135962A (zh) | 2010-01-25 | 2010-01-25 | 一种菜单实现的方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102135962A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279884A (zh) * | 2011-08-05 | 2011-12-14 | 中国工商银行股份有限公司 | 基于Web页面进行数据采集和展现的方法、系统及Web服务器 |
CN102843295A (zh) * | 2012-08-21 | 2012-12-26 | 中兴通讯股份有限公司 | 数据包的处理方法及装置 |
CN103605731A (zh) * | 2013-11-20 | 2014-02-26 | 山东浪潮齐鲁软件产业股份有限公司 | 提高企业Web应用功能菜单展现速度的方法 |
CN103678008A (zh) * | 2012-09-24 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 数据读取方法及相应的数据读取装置 |
CN104267989A (zh) * | 2014-09-26 | 2015-01-07 | 可牛网络技术(北京)有限公司 | 一种浏览器首页更新方法及装置 |
CN104808987A (zh) * | 2015-04-02 | 2015-07-29 | 深圳市华宝电子科技有限公司 | 推送菜单导航数据的方法及系统 |
CN106202298A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 用于网页展示的方法及系统 |
CN106610785A (zh) * | 2015-10-22 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 商品对象列表信息处理方法及装置 |
-
2010
- 2010-01-25 CN CN2010101004317A patent/CN102135962A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279884A (zh) * | 2011-08-05 | 2011-12-14 | 中国工商银行股份有限公司 | 基于Web页面进行数据采集和展现的方法、系统及Web服务器 |
CN102843295A (zh) * | 2012-08-21 | 2012-12-26 | 中兴通讯股份有限公司 | 数据包的处理方法及装置 |
CN103678008A (zh) * | 2012-09-24 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 数据读取方法及相应的数据读取装置 |
CN103678008B (zh) * | 2012-09-24 | 2017-12-22 | 腾讯科技(深圳)有限公司 | 数据读取方法及相应的数据读取装置 |
CN103605731A (zh) * | 2013-11-20 | 2014-02-26 | 山东浪潮齐鲁软件产业股份有限公司 | 提高企业Web应用功能菜单展现速度的方法 |
CN104267989A (zh) * | 2014-09-26 | 2015-01-07 | 可牛网络技术(北京)有限公司 | 一种浏览器首页更新方法及装置 |
CN104808987A (zh) * | 2015-04-02 | 2015-07-29 | 深圳市华宝电子科技有限公司 | 推送菜单导航数据的方法及系统 |
CN106610785A (zh) * | 2015-10-22 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 商品对象列表信息处理方法及装置 |
CN106610785B (zh) * | 2015-10-22 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 商品对象列表信息处理方法及装置 |
CN106202298A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 用于网页展示的方法及系统 |
CN106202298B (zh) * | 2016-06-30 | 2019-11-12 | 北京奇虎科技有限公司 | 用于网页展示的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135962A (zh) | 一种菜单实现的方法、系统和装置 | |
EP3485400B1 (en) | Methods and systems for server-side rendering of native content for presentation | |
US9846699B2 (en) | System and methods thereof for dynamically updating the contents of a folder on a device | |
CN108334568B (zh) | 房源推送方法、装置、设备及计算机可读存储介质 | |
CN103729425B (zh) | 操作响应方法、客户端、浏览器及系统 | |
CN106415537A (zh) | 本地应用的触发和排名 | |
CN101178737A (zh) | 一种互联网关键字符相关信息的发布方法和系统 | |
CN101123547A (zh) | 一种信息投放方法及系统 | |
CN103369369A (zh) | 从社交联网服务提取媒体内容并呈现的系统和方法 | |
CN111124412B (zh) | 一种游戏页面绘制方法、装置、设备及存储介质 | |
CN103119587A (zh) | 基于上下文与继承性选择资源的方法与装置 | |
CN102137191A (zh) | 一种在手机上提供信息服务的方法 | |
CN110830839A (zh) | 多挂件展示方法、装置及存储介质 | |
CN108140055A (zh) | 触发应用信息 | |
CN103927322A (zh) | 调整社交媒体更新显示至变化的丰富度程度的方法和系统 | |
CN105677699A (zh) | 一种为用户生成新闻页面的方法和装置 | |
CN103179207B (zh) | 一种数据传输方法、系统和装置 | |
CN114491354A (zh) | 一种页面生成方法、装置及计算机可读存储介质 | |
CN104714987A (zh) | 社交网站搜寻结果数据排序显示的装置、方法与系统 | |
CN105242965A (zh) | 一种云计算方法、云服务器及终端 | |
US20090013042A1 (en) | Interactive contribution widget | |
KR101814785B1 (ko) | 대화창 입력 컨텐츠에 대응하는 정보제공장치 및 방법 | |
KR20160053413A (ko) | 대화창 입력 컨텐츠에 대응하는 정보제공장치 및 방법 | |
CN103885948A (zh) | 信息展示方法及装置 | |
KR20020029270A (ko) | 사용자 단말기의 윈도우 창에 입혀진 스킨 이미지를이용한 광고 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1159785 Country of ref document: HK |
|
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110727 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1159785 Country of ref document: HK |