著录项信息
专利名称 | 网页显示方法和装置 |
申请号 | CN201210228189.0 | 申请日期 | 2012-07-02 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-01-22 | 公开/公告号 | CN103530292A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 阿里巴巴集团控股有限公司 | 申请人地址 | 英属开曼群岛大开曼资本大厦一座四层847号邮箱
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 阿里巴巴集团控股有限公司 | 当前权利人 | 阿里巴巴集团控股有限公司 |
发明人 | 陈旭东 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 吴贵明;余刚 |
摘要
本申请公开了一种网页显示方法和装置,其中,该方法包括:记录用户在当前网页上的当前访问指令;将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较;如果当前访问指令与历史访问指令中的指令相匹配,则加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件;当接收到后续访问指令时,在当前网页上显示功能文件。本申请解决了现有技术需要预加载网页的所有功能文件而造成的预加载的负荷过大的技术问题,达到了减少预加载负荷和提高资源利用率的技术效果。
1.一种网页显示方法,其特征在于,包括:
记录用户在当前网页上的当前访问指令;
将所述当前访问指令与所述用户在当前网页上的历史访问指令中的指令进行比较;
如果所述当前访问指令与所述历史访问指令中的指令相匹配,则加载所述历史访问指令中与所述当前访问指令匹配的指令的后续访问指令对应的功能文件;
当接收到所述后续访问指令时,在所述当前网页上显示所述功能文件;
其中,所述功能文件是后续动作对应的前端js代码文件。
2.根据权利要求1所述的方法,其特征在于,在加载所述历史访问指令中与所述当前访问指令匹配的指令的后续访问指令对应的功能文件之后,所述方法还包括:
如果在预定时间之后,未接收到所述后续访问指令,则删除加载的所述历史访问指令中与所述当前访问指令匹配的指令的后续访问指令对应的功能文件,并释放存储所述功能文件的存储空间。
3.根据权利要求1所述的方法,其特征在于,加载所述历史访问指令中与所述当前访问指令匹配的指令的后续访问指令对应的功能文件的步骤包括:
当与所述当前访问指令匹配的所述历史访问指令中的指令的数量大于预定阈值时,则加载当前页面中所有未显示的功能文件。
4.根据权利要求1所述的方法,其特征在于,在将所述当前访问指令与所述用户在当前网页上的历史访问指令中的指令进行比较之前,所述方法还包括:按照以下方式生成该用户在当前网页上的历史访问指令:
获取用户在所述网页上的历史访问日志;
从所述历史访问日志的浏览记录中确定该用户的历史访问指令;
将该用户的历史访问指令按照执行的先后顺序存储在数据库中。
5.根据权利要求1所述的方法,其特征在于,将所述当前访问指令与所述用户在当前网页上的历史访问指令中的指令进行比较的步骤包括:
判断所述历史访问指令中的指令以及指令之间的执行顺序是否与所述当前访问指令的相同;
如果相同,则确定用户当前的访问指令与用户的历史访问指令相匹配。
6.一种网页显示装置,其特征在于,包括:
记录单元,用于记录用户在当前网页上的当前访问指令;
比较单元,用于将所述当前访问指令与所述用户在当前网页上的历史访问指令中的指令进行比较;
加载单元,用于当所述当前访问指令与所述历史访问指令中的指令相匹配时,加载所述历史访问指令中与所述当前访问指令匹配的指令的后续访问指令对应的功能文件;
显示单元,用于当接收到所述后续访问指令时,在所述当前网页上显示所述功能文件;
其中,所述功能文件是后续动作对应的前端js代码文件。
7.根据权利要求6所述的装置,其特征在于,还包括:
释放单元,用于在预定时间之后,未接收到所述后续访问指令,删除加载的所述历史访问指令中与所述当前访问指令匹配的指令的后续访问指令对应的功能文件,并释放存储所述功能文件的存储空间。
8.根据权利要求6所述的装置,其特征在于,所述加载单元包括:
加载模块,用于当与所述当前访问指令匹配的所述历史访问指令中的指令的数量大于预定阈值时,加载当前页面中所有未显示的功能文件。
9.根据权利要求6所述的装置,其特征在于,还包括:
获取单元,用于获取用户在所述网页上的历史访问日志;
确定单元,用于从所述历史访问日志的浏览记录中确定该用户的历史访问指令;
存储单元,用于将该用户的历史访问指令按照执行的先后顺序存储在数据库中。
网页显示方法和装置\n技术领域\n[0001] 本申请涉及互联网领域,具体而言,涉及一种网页显示方法和装置。\n背景技术\n[0002] 一个具有复杂交互的html网页页面,一般会存在大量的javascript代码,这些代码一般都会把网页上的各个功能以大量的文件形式合并为一个文件从而组成一个网页页面。例如:百度地图(被合并成一个js文件)、google地图(按功能分成多个js文件)。\n[0003] 在现有的前端显示的技术中,采用最多的是通过javascript语言来实现网页相关功能的加载。例如,现在的大多实现方案均采用onmousedown(鼠标滑动)或者onclick(点击)等用户主动触发的事件来决定执行对当前网页进行何种加载和显示的操作,即,设置事件捕捉用户onmousedown或者click事件以进行功能文件的显示或加载。目前,对于各种类型的网页,在刚打开页面的时候,一般需要将页面上的功能全部加载以进行显示,然而有很多时候用户并不需要显示这些功能,资源没有得到有效的利用,且导致网页加载速度缓慢。\n例如:\n[0004] 情景1,以地图页面为例进行说明,地图页面上一般有地区信息的选择,该功能实现的方式一般是当用户鼠标点击或滑过一个省的地址时,页面上会立即显示这个省所对应的各城市的列表以供用户进行选择。这种方式的实现一般是已经预先加载了该功能的全部功能文件,因此当用户移动鼠标到相应的位置时会触发其进行显示。通过上述这种方式使得页面需要预先记载大量的功能文件,从而使得网页缓存的负荷较大。\n[0005] 情景2.,以用户对网页的浏览为例进行说明,当用户打开当前网页的时候,就会预先加载这个网页上的所有的功能文件。然而,有很多时候用户并不需要显示这些功能,或者用户在当前页面上停留的时候仅仅浏览前1/2的页面就会离开该页面,而不需要显示该页面下方的页面,在这种情况下加载完整的一个页面是没有必要的。\n[0006] 针对上述问题,尚未提出有效的解决方案。\n发明内容\n[0007] 本申请提供了一种网页显示方法和装置,以至少解决现有技术中需要预加载网页的所有功能文件而造成的预加载的负荷过大的技术问题。\n[0008] 根据本申请的一个方面,提供了一种网页显示方法,包括:记录用户在当前网页上的当前访问指令;将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较;如果当前访问指令与历史访问指令中的指令相匹配,则加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件;当接收到后续访问指令时,在当前网页上显示功能文件。\n[0009] 优选地,在加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件之后,上述方法还包括:如果在预定时间之后,未接收到后续访问指令,则删除加载的历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件,并释放存储功能文件的存储空间。\n[0010] 优选地,加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件的步骤包括:当与当前访问指令匹配的历史访问指令中的指令的数量大于预定阈值时,则加载当前页面中所有未显示的功能文件。\n[0011] 优选地,在将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较之前,上述方法还包括:按照以下方式生成该用户在当前网页上的历史访问指令:获取用户在网页上的历史访问日志;从历史访问日志的浏览记录中确定该用户的历史访问指令;\n将该用户的历史访问指令按照执行的先后顺序存储在数据库中。\n[0012] 优选地,将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较的步骤包括:判断历史访问指令中的指令以及指令之间的执行顺序是否与当前访问指令的相同;如果相同,则确定用户当前的访问指令与用户的历史访问指令相匹配。\n[0013] 优选地,功能文件是后续动作对应的前端js代码文件。\n[0014] 根据本申请的一个方面,提供了一种网页显示装置,包括:记录单元,用于记录用户在当前网页上的当前访问指令;比较单元,用于将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较;加载单元,用于当当前访问指令与历史访问指令中的指令相匹配时,加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件;显示单元,用于当接收到后续访问指令时,在当前网页上显示功能文件。\n[0015] 优选地,上述装置还包括:释放单元,用于在预定时间之后,未接收到后续访问指令,删除加载的历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件,并释放存储功能文件的存储空间。\n[0016] 优选地,加载单元包括:加载模块,用于当与当前访问指令匹配的历史访问指令中的指令的数量大于预定阈值时,加载当前页面中所有未显示的功能文件。\n[0017] 优选地,上述装置还包括:获取单元,用于获取用户在网页上的历史访问日志;确定单元,用于从历史访问日志的浏览记录中确定该用户的历史访问指令;存储单元,用于将该用户的历史访问指令按照执行的先后顺序存储在数据库中。\n[0018] 在本申请中,通过用户的历史访问指令来确定对应于该用户的预加载的内容,而不需要预加载当前网页中的所有功能文件,从而解决了现有技术中需要预加载网页的所有功能文件而造成的预加载的负荷过大的技术问题,达到了减少预加载负荷和提高资源利用率的技术效果。\n附图说明\n[0019] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:\n[0020] 图1是根据本申请实施例的网页显示系统的一种优选结构框图;\n[0021] 图2是根据本申请实施例的网页显示装置的一种优选结构框图;\n[0022] 图3是根据本申请实施例的网页显示装置的另一种优选结构框图;\n[0023] 图4是根据本申请实施例的网页显示装置的又一种优选结构框图;\n[0024] 图5是根据本申请实施例的网页显示方法的一种优选流程图;\n[0025] 图6是根据本申请实施例的网页显示方法的另一种优选流程图;\n[0026] 图7是根据本申请实施例的网页显示方法的又一种优选流程图。\n具体实施方式\n[0027] 下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。\n[0028] 在描述本申请的各实施例的进一步细节之前,将参考图1来描述可用于实现本申请的原理的一个合适的计算体系结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本申请的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本申请,但它并不意味着限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。\n[0029] 转向附图,其中相同的附图标记指代相同的元素,本申请的原理被示为在一个合适的计算环境中实现。以下描述基于所述的本申请的实施例,并且不应认为是关于此处未明确描述的替换实施例而限制本申请。\n[0030] 图1示出了可用于这些设备的一个示例计算机体系结构的示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应将该计算系统解释为对图1所示的任一组件或其组合具有任何依赖或需求。\n[0031] 本申请的原理可以使用其它通用或专用计算或通信环境或配置来操作。适用于本申请的众所周知的计算系统、环境和配置的示例包括但不限于,个人计算机、服务器,多处理器系统、基于微处理的系统、小型机、大型计算机、以及包括任一上述系统或设备的分布式计算环境。\n[0032] 在其最基本的配置中,图1中的网页显示系统100至少包括:一个网站的服务器102以及一个或多个客户端104。服务器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置、用于存储数据的存储装置以及与客户端通信的传输装置;客户端104可以包括:微处理器MCU、与服务器通信的传输装置、与用户交互的显示装置。在本说明书和权利要求书中,“系统”也可以被定义为能够执行软件、固件或微码来实现功能的任何硬件组件或硬件组件的组合网页显示系统100甚至可以是分布式的,以实现分布式功能。\n[0033] 如本申请所使用的,术语“模块”、“组件”或“单元”可以指在网页显示系统100上执行的软件对象或例程。此处所描述的不同组件、模块、单元、引擎和服务可被实现为在网页显示系统100上执行(例如,作为单独的线程)的对象或进程。尽管此处所描述的系统和方法较佳地以软件来实现,但是硬件或软件和硬件的组合的实现也是可能并被构想的。\n[0034] 实施例1\n[0035] 图2是根据本申请实施例网页显示装置的一种优选的结构示意图,优选的,本实施例中的系统位于服务器102上或者客户端104上。\n[0036] 优选的,如图2所示的网页显示装置200可以包括:\n[0037] 1)记录单元202,用于记录用户在当前网页上的当前访问指令;例如,获取用户在当前网页上鼠标的点击或者鼠标的滑动操作,或触摸屏设备使用用户的手指触摸或滑动操作等,并对这些操作所对应的指令进行记录。\n[0038] 2)比较单元204,用于将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较;\n[0039] 获取该用户在该页面上的历史的访问指令,也就是用户以前在该网页上的操作,从而可以确定该用户在该网页可能需要加载的内容、考虑到服务器的负荷的有限性,用户的历史访问指令可以存储在该用户终端的本地存储单元中(当然本申请实施例并不排除可将用户历史访问指令存储于服务器端的方案),当浏览到该页面时从用户本地获取其对应的历史访问指令的记录。优选地,用户的历史访问指令可以按照预定的规则一条条进行存储,以便于存储和后续的比较匹配。\n[0040] 3)加载单元206,用于当当前访问指令与历史访问指令中的指令相匹配时,加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件;\n[0041] 当记录的用户在当前的访问指令和该用户在该页面上的某一个或某些历史的指令动作匹配后,即,当前记录的指令与历史的指令在执行显示顺序或者是执行的内容相同时就可以确定匹配上相应的指令,此时便可以按照用户的历史访问记录来确定需要预加载的内容,其中,后续访问指令就是该用户以前在当前网页上执行完上述匹配上的动作之后的后续的动作。\n[0042] 例如,该用户在浏览完网页上的当前内容后,向下滑动鼠标,则表明用户希望浏览该页面位于下方的内容,这样便可以预先对该网页下方的内容进行加载。或者,对于类似地图这种扩展功能较多的页面,当用户在历史记录中点击的顺序是先点了“直辖市”,又选择了“北京”,那么在用户点击完“直辖市”后与该用户的历史记录相匹配了,就可以确定用户后续可能会选择具体的直辖市信息中的“北京”,这是就可以预先在地图页面上预加载“北京”的相关地图功能的功能文件,而不需要将所有的省市的信息都进行预加载。\n[0043] 4)显示单元208,用于当接收到后续访问指令时,在当前网页上显示相应功能文件。\n[0044] 当用户后续的访问确实和历史访问相匹配的时候,就可以直接将预加载的功能文件进行显示了,例如,用户确实是将鼠标向下滑动,并可以直接将预先加载的后续网页的页面的功能文件进行显示,或者如果用户确实在选择直辖市后选择了北京,就可以直接在页面上对预加载的北京的地图信息进行显示。\n[0045] 本实施例加载单元206和显示单元208还可在用户初始访问某一网页时,根据网站服务器预设的加载规则加载该网页中的部分内容或功能并显示,例如:当用户通过浏览器的地址栏输入某一网页的访问地址而发起访问请求时,加载单元206根据网站服务器预设的加载规则仅加载该网页中的部分内容或功能,而并不加载该网页中的全部内容或功能,并通过显示单元208显示相应的内容。其中,网站服务器中预设的加载规则可以是仅加载用户访问必需的基本功能。\n[0046] 在本优选实施方式中,通过用户的历史访问指令来确定对应于该用户的预加载的内容,而不需要预加载当前网页中的所有功能文件,从而解决了现有技术中需要预加载网页的所有功能文件而造成的预加载的负荷过大的技术问题,达到了减少预加载负荷和提高资源利用率的技术效果。\n[0047] 考虑到用户可能在本次浏览网页的时候的习惯和历史不同,即,用户可能不再浏览历史访问指令中后续的网页,在这种情况下,为了更有效的利用缓存资源,可以设定一个预加载内容的缓存过期处理机制,例如,设定如果5分钟后用户仍未按照匹配到的历史访问记录和后续指令进行操作,可以将缓存中预加载的内容删除,以减少缓存的负担。在一个优选实施方式中,上述装置还包括:释放单元,用于在预定时间之后,未接收到后续访问指令,则删除加载的历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件,并释放存储功能文件的存储空间。\n[0048] 有些网页可能用户在该网页的历史访问指令比较多,可能每个功能用户在历史访问记录中都用过,或者该网页的所有内容该用户都浏览过,这样在采用匹配预加载的方式时就可以匹配到很多的后续操作指令,考虑到这种情况,可以为每次的匹配配置一个匹配结果的阈值,如果匹配到的结果数大于这个阈值时就表明该网页中的功能文件或者网页内容,该用户后续都有可能浏览,在这种情况下,就可以不再匹配,则是直接预加载该网页的所有功能文件以及其相应的网页内容。在一个优选实施方式中,加载单元包括:加载模块,用于当与当前访问指令匹配的历史访问指令中的指令的数量大于预定阈值时,加载当前页面中所有未显示的功能文件。\n[0049] 优选地,对于上述的历史访问指令的获取,可以是从该用户的历史访问日志中获取的,所谓的历史访问日志即记录用户的历史操作指令的文件。在一个优选实施方式中,如图3所示,上述装置还包括:\n[0050] 获取单元302,用于获取用户在网页上的历史访问日志;\n[0051] 确定单元304,用于从历史访问日志的浏览记录中确定该用户的历史访问指令;\n[0052] 存储单元306,用于将该用户的历史访问指令按照执行的先后顺序存储在数据库中。\n[0053] 例如,对整个这种访问日志进行提取,可以得到很多这种详细的用户访问序列信息,下面以offerResult.xhtml表示用户A进行了产品搜索,companyResult.xhtml表示用户进行了公司搜索,offerDetail.xhtml表示在上述两个步骤之后,用户进行了点击操作查看产品的详细信息。\n[0054] 将该用户A的浏览记录列表按先后序列保存到数据库tableA表,可以按照以下内容格式进行存储:\n[0055]\n id userid action time\n 1 A offerResult 11/Apr/2012:00:10:32\n 2 A companyResult 11/Apr/2012:00:10:33\n 3 A companyResult 11/Apr/2012:00:10:35\n 4 A offerResult 11/Apr/2012:00:10:35\n 5 A offerDetail 11/Apr/2012:00:10:35\n[0056] 即,按照历史操作指令中执行的时间和动作进行记录,以便于匹配。\n[0057] 在一个优选实施方式中,如图4所示,比较单元包括:确定模块402,用于确定存储的用户的历史访问指令以及指令之间执行的先后顺序,是否与当前的访问指令以及指令之间执行的先后顺序相同;匹配模块404,用于当确定相同时,确定用户当前的访问指令与用户的历史访问指令相匹配。即,确定历史访问指令中是否有和当前的访问指令相同的指令,并判断指令之间执行的先后顺序,如果有,则将匹配的历史访问指令中与其匹配的访问指令的后续指令作为用户后续可能进行的操作,从而加载相应的文件。\n[0058] 例如,在对用户的历史访问指令中的数据按照上述的序列的形式进行处理后,提取成一行命令格式,即形成A用户经过offerResult和companyResult后预先加载offerDetail的功能代码,格式可以是:A offerResult、companyResult、offerDetail;将这种格式的数据保存到数据库的tableB表中,其中A表示用户id,能够标识用户的唯一值,offerResult、companyResul表示操作行为的先后顺序,offerDetail即表示应该要执行的前端代码脚本名称或者前端脚本内容。\n[0059] 优选地,对于用户的历史访问指令也可以是根据经验或者需求人工输入的,而不需要按照用户的历史访问指令进行确定。\n[0060] 实施例2\n[0061] 在图2-图4所示的系统的基础上,本申请提供了一种优选的网页显示方法。如图5所示,该方法可以包括如下步骤:\n[0062] 步骤S502:记录用户在当前网页上的当前访问指令;例如,获取用户在当前网页上鼠标的点击或者鼠标的滑动操作,或触摸屏设备使用用户的手指触摸或滑动操作等,并对这些操作所对应的指令进行记录。\n[0063] 步骤S504:将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较;\n[0064] 获取该用户在该页面上的历史的访问指令,也就是用户以前在该网页上的操作,从而可以确定该用户在该网页可能需要加载的内容、考虑到服务器的负荷的有限性,用户的历史访问指令可以存储在该用户终端的本地存储单元中(当然本申请实施例并不排除可将用户历史访问指令存储于服务器端的方案),当浏览到该页面时从用户本地获取其对应的历史访问指令的记录。优选地,用户的历史访问指令可以按照预定的规则一条条进行存储,以便于存储和后续的比较匹配。\n[0065] 步骤S506:如果当前访问指令与历史访问指令中的指令相匹配,则加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件;\n[0066] 当记录的用户在当前的访问指令和该用户在该页面上的某一个或某些历史的指令动作匹配后,即,当前记录的指令与历史的指令在执行显示顺序或者是执行的内容相同时就可以确定匹配上相应的指令,此时便可以按照用户的历史访问记录来确定需要预加载的内容,其中,后续访问指令就是该用户以前在当前网页上执行完上述匹配上的动作之后的后续的动作。\n[0067] 例如,该用户在浏览完网页上的当前内容后,向下滑动鼠标,则表明用户希望浏览该页面位于下方的内容,这样便可以预先对该网页下方的内容进行加载。或者,对于类似地图这种扩展功能较多的页面,当用户在历史记录中点击的顺序是先点了“直辖市”,又选择了“北京”,那么在用户点击完“直辖市”后与该用户的历史记录相匹配了,就可以确定用户后续可能会选择具体的直辖市信息中的“北京”,这是就可以预先在地图页面上预加载“北京”的相关地图功能的功能文件,而不需要将所有的省市的信息都进行预加载。\n[0068] 步骤S508:当接收到后续访问指令时,在当前网页上显示相应功能文件。\n[0069] 当用户后续的访问确实和历史访问相匹配的时候,就可以直接将预加载的功能文件进行显示了,即,用户确实是将鼠标向下滑动,并可以直接将预先加载的后续网页的页面的功能文件进行显示,或者如果用户确实在选择直辖市后选择了北京,就可以直接在页面上对预加载的北京的地图信息进行显示。\n[0070] 本实施例在用户初始访问某一网页时,根据网站服务器预设的加载规则加载该网页中的部分内容或功能并显示,例如:当用户通过浏览器的地址栏输入某一网页的访问地址而发起访问请求时,根据网站服务器预设的加载规则仅加载并显示该网页中的部分内容或功能,而并不加载该网页中的全部内容或功能。其中,网站服务器中预设的加载规则可以是仅加载用户访问必需的基本功能。\n[0071] 在本优选实施方式中,通过用户的历史访问指令来确定对应于该用户的预加载的内容,而不需要预加载当前网页中的所有功能文件,从而解决了现有技术中需要预加载网页的所有功能文件而造成的预加载的负荷过大的技术问题,达到了减少预加载负荷和提高资源利用率的技术效果。\n[0072] 考虑到用户可能在本次浏览网页的时候的习惯和历史不同,即,用户可能不再浏览历史访问指令中后续的网页,在这种情况下,为了更有效的利用缓存资源,可以设定一个预加载内容的缓存过期处理机制,例如,设定如果5分钟后用户仍未按照匹配到的历史访问记录和后续指令进行操作,可以将缓存中预加载的内容删除,以减少缓存的负担。在一个优选实施方式中,在加载历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件之后,上述方法还包括:如果在预定时间之后,未接收到后续访问指令,则释放历史访问指令中与当前访问指令匹配的指令的后续访问指令对应的功能文件。\n[0073] 有些网页可能用户在该网页的历史访问指令比较多,可能每个功能用户在历史访问记录中都用过,或者该网页的所有内容该用户都浏览过,这样在采用匹配预加载的方式时就可以匹配到很多的后续操作指令,考虑到这种情况,可以为每次的匹配配置一个匹配结果的阈值,如果匹配到的结果数大于这个阈值时就表明该网页中的功能文件或者网页内容,该用户后续都有可能浏览,在这种情况下,就可以不再匹配,则是直接预加载该网页的所有功能文件以及其相应的网页内容。在一个优选实施方式中,记录用户在当前网页上的当前访问动作的步骤包括:当与当前访问指令匹配的历史访问指令中的指令的指令数量大于预定阈值时,则加载当前页面中所有未显示的功能文件。\n[0074] 优选地,对于上述的历史访问指令的获取,可以是从该用户的历史访问日志中获取的,所谓的历史访问日志即记录用户的历史操作指令的文件。在一个优选实施方式中,如图6所示,在将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较之前,上述方法还包括:按照如图所示的方式生成该用户在当前网页上的历史访问指令,包括以下步骤:\n[0075] 步骤S602:获取用户在网页上的历史访问日志;\n[0076] 步骤S604:从历史访问日志的浏览记录中确定该用户的历史访问指令;\n[0077] 步骤S606:将该用户的历史访问指令按照执行的先后顺序存储在数据库中。\n[0078] 例如,对整个这种访问日志进行提取,可以得到很多这种详细的用户访问序列信息,下面以offerResult.xhtml表示用户A进行了产品搜索,companyResult.xhtml表示用户进行了公司搜索,offerDetail.xhtml表示在上述两个步骤之后,用户进行了点击操作查看产品的详细信息。\n[0079] 将该用户A的浏览记录列表按先后序列保存到数据库tableA表,可以按照以下内容格式进行存储:\n[0080]\n id userid action time\n 1 A offerResult 11/Apr/2012:00:10:32\n 2 A companyResult 11/Apr/2012:00:10:33\n 3 A companyResult 11/Apr/2012:00:10:35\n 4 A offerResult 11/Apr/2012:00:10:35\n 5 A offerDetail 11/Apr/2012:00:10:35\n[0081] 即,按照历史操作指令中执行的时间和动作进行记录,以便于匹配。\n[0082] 在一个优选实施方式中,将当前访问指令与用户在当前网页上的历史访问指令中的指令进行比较的步骤包括:判断历史访问指令中的指令以及指令之间的执行顺序是否与当前访问指令的相同;如果相同,则确定用户当前的访问指令与用户的历史访问指令相匹配。即,确定历史访问指令中是否有和当前的访问指令相同的指令,并判断指令之间执行的先后顺序,如果有,则将匹配的历史访问指令中与其匹配的访问指令的后续指令作为用户后续可能进行的操作,从而加载相应的文件。\n[0083] 例如,在对用户的历史访问指令中的数据按照上述的序列的形式进行处理后,提取成一行命令格式,即形成A用户经过offerResult和companyResult后预先加载offerDetail的功能代码,格式可以是:A offerResult、companyResult、offerDetail;将这种格式的数据保存到数据库的tableB表中,其中A表示用户id,能够标识用户的唯一值,offerResult、companyResul表示操作行为的先后顺序,offerDetail即表示应该要执行的前端代码脚本名称或者前端脚本内容。\n[0084] 优选地,功能文件是后续动作对应的前端js代码文件。对于用户的历史访问指令也可以是根据经验或者需求人工输入的,而不需要按照用户的历史访问指令进行确定。\n[0085] 实施例3\n[0086] 本申请提供了一种优选的实施例来进一步对本申请进行解释,但是值得注意的是,该优选实施例只是为了更好的描述本申请,并不构成对本申请不当的限定。\n[0087] 在本实施例中,网页的加载方法如图7所示,主要包括以下步骤:\n[0088] 步骤S702:数据预处理;\n[0089] 步骤S704:前端页面处理。\n[0090] 对于步骤S702,具体可以按照以下方式进行,根据用户的访问日志,提取出用户A的所有浏览记录列表,访问日志中的每条记录都能表示用户正在看什么内容或者进行怎样的操作,特别是地图类型或者其他复杂交互页面的网站,这种记录的每一条都表示用户当前所执行的操作。\n[0091] 例如:以地图页面为例,访问的浏览记录列表可以是:\n[0092] 110.73.188.109---[11/Apr/2012:00:10:32+0800]"GET/ditu.alibaba.com/rpc/company/offerResult.xhtml?keywords=%E5%B0%81%E5%8C%85%E6%9C%BA%E7%BA%BF%E5%9B%A2&categoryId=&latitude=2941039.2229720703~3001034.633383046&longitude=\n11896976.810639072~12023594.242279697&beginPage=1&pageSize=10&encode=utf-8&province=&city=HTTP/1.1"200136160168"http://ditu.alibaba.com/k-\nB7E2B0FCBBFACFDFCDC5_e-y.html""Mozilla/4.0(compatible;MSIE8.0;Windows NT5.1;\nTrident/4.0;.NET CLR2.0.50727;360SE)"--"a=-;b=-;c=-"-\n[0093] 110.73.188.109---[11/Apr/2012:00:10:33+0800]"GET/ditu.alibaba.com/rpc/company/companyResult.xhtml?keywords=%E5%B0%81%E5%8C%85%E6%9C%BA%E7%BA%BF%E5%9B%A2&categoryId=&latitude=2941039.2229720703~3001034.633383046&longitude=11896976.810639072~12023594.242279697&beginPage=1&pageSize=10&encode=utf-8&province=&city=HTTP/1.1"200137109293"http://ditu.alibaba.com/k-B7E2B0FCBBFACFDFCDC5_e-y.html""Mozilla/4.0(compatible;MSIE8.0;Windows NT5.1;\nTrident/4.0;.NET CLR2.0.50727;360SE)"--"a=-;b=-;c=-"-\n[0094] 110.73.188.109---[11/Apr/2012:00:10:35+0800]"GET/ditu.alibaba.com/rpc/company/companyResult.xhtml?keywords=%E5%B0%81%E5%8C%85%E6%9C%BA%E7%BA%BF%E5%9B%A2&categoryId=&latitude=2964459.76554949~3024315.153572817&longitude=11927601.20028751~12054218.631928134&pageSize=10&encode=utf-8&beginPage=1&province=&city=HTTP/1.1"20013715813"http://ditu.alibaba.com/k-\nB7E2B0FCBBFACFDFCDC5_e-y.html""Mozilla/4.0(compatible;MSIE8.0;Windows NT5.1;\nTrident/4.0;.NET CLR2.0.50727;360SE)"--"a=-;b=-;c=-"-\n[0095] 110.73.188.109---[11/Apr/2012:00:10:35+0800]"GET/ditu.alibaba.com/rpc/company/offerResult.xhtml?keywords=%E5%B0%81%E5%8C%85%E6%9C%BA%E7%BA%BF%E5%9B%A2&categoryId=&latitude=2964459.76554949~3024315.153572817&longitude=\n11927601.20028751~12054218.631928134&pageSize=10&encode=utf-8&beginPage=1&province=&city=HTTP/1.1"20088344566"http://ditu.alibaba.com/k-\nB7E2B0FCBBFACFDFCDC5_e-y.html""Mozilla/4.0(compatible;MSIE8.0;Windows NT5.1;\nTrident/4.0;.NET CLR2.0.50727;360SE)"--"a=-;b=-;c=-"-\n[0096] 110.73.188.109---[11/Apr/2012:00:10:35+0800]"GET/ditu.alibaba.com/rpc/offer/offerDetail.xhtml?memberIds=hzxulian&fromOfferId=1127143184HTTP/\n1.1"200111926076"http://ditu.alibaba.com/k-B7E2B0FCBBFACFDFCDC5_e-y.html""Mozilla/4.0(compatible;MSIE8.0;Windows NT5.1;Trident/4.0;.NET CLR2.0.50727;\n360SE)"--"a=-;b=-;c=-"–\n[0097] 假设110.73.188.109记为用户A,上述的offerResult.xhtml、\ncompanyResult.xhtml、offerDetail.xhtml访问序列表明用户A进行了产品搜索(offerResult)和公司搜索(companyResult)行为后,点击查看了产品的详细信息(offerDetail)。\n[0098] 通过上述方式对整个这种访问日志进行提取,可以获取很多类似的用户的访问序列信息。\n[0099] 优选地,可以将上面用户A的浏览记录列表按先后顺序存到数据库tableA表中,保存到数据的序列内容格式:\n[0100]\n id userid action time\n 1 A offerResult 11/Apr/2012:00:10:32\n 2 A companyResult 11/Apr/2012:00:10:33\n 3 A companyResult 11/Apr/2012:00:10:35\n 4 A offerResult 11/Apr/2012:00:10:35\n 5 A offerDetail 11/Apr/2012:00:10:35\n 6 B getProvince ……\n 7 C …… …… \n[0101] 对上述获取的列表进行处理,可以提取成一行命令格式:A用户经过offerResult和companyResult后预先加载offerDetail的功能代码,其对应的格式文件为:A offerResult、companyResult、offerDetail;将这种格式的数据保存到数据库的tableB表中,其中,用A表示用户id,能够标识用户的唯一值;offerResult和companyResul表示操作行为的先后顺序;offerDetail表示应该要执行的前端代码脚本名称或者前端脚本内容。\n[0102] 数据预处理的过程可以在线下长时间运行,只要将用户访问记录处理成tableB格式的数据即可,也可以根据应用的情况,不通过对历史访问指令的分析,而是手工方式加入类似这种格式的序列数据。例如,手工方式的功能例如:鼠标缩放地图从城市级别缩放到省份级别时,自动加载区域统计功能,其对应的格式文件为:B srollcity、scrollprovince、regionStata。或者拖动滚动条到页面2/3以下时,自动加载页面底部的内容,对应的格式文件为:Bscrolldown2/3、content。\n[0103] 对于步骤S704,前端页面处理具体可以按照以下方式进行:\n[0104] 当用户A所进入的页面刚打开时,ajax方式向后台数据库中的tableB发起请求以获取当前浏览者的历史访问指令,如果获取到数据C,则把这些数据保存到页面中或者或浏览器内存中。\n[0105] 将用户在页面上的当前访问指令也按照上述的格式文件进行保存,记为操作记录数据D,检查这个序列(数据D)中是否有包含数据C中的内容,例如:当数据D中出现:…、companyResult、offerResult、companyResult,这样就可以检测到在C中已经存在对应的操作指令的数据,这个时候就可以自动从远程服务器中请求加载offerDetail功能的前端js代码文件并执行。\n[0106] 在上述优选实施方式中,通过分析用户访问日志,根据用户的当前在页面上操作行为和历史访问记录,来决定给这个用户初始化页面的时候预加载特定的功能,甚至是每个用户都是预加载不一样的功能,而且还能在用户的操作过程中预加载可能会使用到的功能。通过快速定位复杂的用户行为操作后再进行动态脚本的加载,而不需要预先记载的所有的动态脚本,减少了预加载的负荷,提高了资源的利用率。通过上述方式还明显提升了前端开发的效率,并且对事件关系的管理维护上更加清晰,通过用户操作过程中预加载一些今后该用户可能会使用的功能,也提高了用户的访问体验。\n[0107] 通过以上的描述可知,本申请具有以下优势:通过用户的历史访问指令来确定对应于该用户的预加载的内容,而不需要预加载当前网页中的所有功能文件,从而解决了现有技术中需要预加载网页的所有功能文件而造成的预加载的负荷过大的技术问题,达到了减少预加载负荷和提高资源利用率的技术效果。\n[0108] 显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。\n[0109] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
法律信息
- 2016-05-25
- 2014-02-26
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201210228189.0
申请日: 2012.07.02
- 2014-01-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-01-20
|
2008-02-19
| | |
2
| |
2012-05-09
|
2011-12-22
| | |
3
| |
2009-07-22
|
2008-01-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |