一种加快页面加载速度的方法和装置与流程

文档序号:13482869阅读:109来源:国知局
本发明涉及数据传输技术,尤指一种加快页面加载速度的方法和装置。
背景技术
:随着web技术的不断推广,由用户使用的客户端为了包含更多的页面效果,需加载很多的组件,以实现丰富的页面效果。不容忽视的是,在使页面效果丰富多彩的同时,所加载的组件给客户端的页面的加载带来的负面效应,页面的加载和渲染都因系统需加载过多的java脚本语言(即,javascript语言)和级联样式表(cascadingstylesheets,简称为css)语言编写的代码所实现的组件而变得迟缓,严重影响了用户体验。以上用于实现组件的代码的加载过程耗时越久,客户端上安装的浏览器中显示的页面等待响应的时间就越长。页面的用户体验就会越差。技术实现要素:为了解决上述技术问题,本发明提供了一种加快页面加载速度的方法和装置,其能够加快客户端页面加载的速度。为了达到本发明目的,本发明提供了一种加快页面加载速度的方法,应用于服务器端,该方法包括:在从请求加载页面的客户端接收到加载根据客户端所在系统的需求而开发的组件的请求的时候,压缩用于实现根据客户端所在系统的需求而开发的组件的代码,以及将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端;其中,用于实现根据客户端所在系统的需求而开发的组件的代码是采用java脚本语言或级联样式表css语言开发的。进一步地,在一个可选的实施例中,该方法还包括:在从客户端接收到加载第三方插件的请求的时候,压缩用于实现第三方插件的代码,以及将经压缩的用于实现第三方插件的代码加载到客户端,其中,用于实现第三方插件的代码是采用java脚本语言或级联样式表css语言开发的。进一步地,在一个可选的实施例中,经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码是用于实现对客户端的界面进行初始化的组件的代码;在将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端的步骤之后,该方法还包括:在从客户端接收到子页面加载请求的时候,将子页面加载请求所请求加载的子页面的组件的代码以及子页面的数据加载到客户端。进一步地,在一个可选的实施例中,压缩用于实现根据客户端所在系统的需求而开发的组件的代码的步骤包括:按照预先设定的压缩规则,删除不影响编译根据客户端所在系统的需求而开发的组件的代码的空格和注释;和/或将在用于实现根据客户端所在系统的需求而开发的组件的代码中的、除了根据编码规则约定的变量名之外的变量名替换成占用的字节数量更少的变量名。进一步地,在一个可选的实施例中,压缩用于实现第三方插件的代码的步骤,包括:按照预先设定的压缩规则,删除不影响编译第三方插件的代码的空格和注释;和/或将在用于实现第三方插件的代码中的、除了根据编码规则约定的变量名之外的变量名替换成占用的字节数量更少的变量名。进一步地,在一个可选的实施例中,将子页面加载请求所请求加载的子页面的组件的代码以及子页面的数据加载到客户端的包装的步骤,包括:压缩子页面加载请求所请求加载的子页面的组件的代码,以及将经压缩的子页面加载请求所请求加载的子页面的组件的代码加载到客户端。进一步地,在一个可选的实施例中,压缩子页面加载请求所请求加载的子页面的组件的代码的步骤,包括:按照预先设定的压缩规则,删除不影响编译子页面加载请求所请求加载的子页面的组件的代码的空格和注释;和/或将在压缩子页面加载请求所请求加载的子页面的组件的代码中的、除了根据编码规则约定的变量名之外的变量名替换成占用的字节数量更少的变量名。为了达到本发明目的,本发明还提供了一种加快页面加载速度的装置,该装置包括:系统组件代码压缩模块,设置成在从请求加载页面的客户端接收到加载根据客户端所在系统的需求而开发的组件的请求的时候,压缩用于实现根据客户端所在系统的需求而开发的组件的代码,以及系统组件代码加载模块,设置成将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端;其中,用于实现根据客户端所在系统的需求而开发的组件的代码是采用java脚本语言或级联样式表css语言开发的。进一步地,在一个可选的实施例中,该装置还包括:插件代码压缩模块,设置成在从客户端接收到加载第三方插件的请求的时候,压缩用于实现第三方插件的代码,以及插件代码加载模块,设置成将经压缩的用于实现第三方插件的代码加载到客户端,其中,用于实现第三方插件的代码是采用java脚本语言或级联样式表css语言开发的。进一步地,在一个可选的实施例中,经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码是用于实现对客户端的界面进行初始化的组件的代码;该装置还包括:子页面加载模块,设置成在系统组件代码加载模块将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端之后,子页面加载模块在从客户端接收到子页面加载请求的时候,将子页面加载请求所请求加载的子页面的组件的代码、以及子页面加载请求所请求加载的子页面的数据加载到客户端。与现有技术相比,本发明实施例中,在将用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端之前,将该代码进行压缩,从而最大程度地降低客户端的页面加载的代码所占用的内存,提高页面的加载速度;由于该代码通常是在客户端的多个页面中通用的,因此使代码所占用的内存长期保持在相对低的水平,有益于长期提高页面的加载速度。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。图1为根据本发明的实施例的加快页面加载速度的方法的流程图;图2为根据本发明的实施例的加快页面加载速度的装置的框图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例提供了一种加快页面加载速度的方法,应用于服务器端,该方法包括步骤s105至步骤s109。步骤s105,在从请求加载页面的客户端接收到加载根据客户端所在系统的需求而开发的组件的请求的时候,压缩用于实现根据客户端所在系统的需求而开发的组件的代码;步骤s109,将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端;其中,用于实现根据客户端所在系统的需求而开发的组件的代码是采用java脚本语言或级联样式表css语言开发的。在本文中,将“客户端”定义为与服务器相对应的并且为客户提供本地服务的产品;将“服务器端”定义为是为客户端提供服务的产品,该产品所服务的内容例如是:向客户端提供资源、保存客户端数据等。本发明实施例的有益效果在于:在将用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端之前,将该代码进行压缩,从而最大程度地降低客户端的页面加载的代码所占用的内存,提高页面的加载速度;由于该代码通常是在客户端的多个页面中通用的,因此使代码所占用的内存长期保持在相对低的水平,有益于长期提高页面的加载速度。需要说明的是,由于上述用于实现根据客户端所在系统的需求而开发的组件的代码是采用java脚本语言或级联样式表css语言开发的,因此是以封装成的java脚本语言文件或css文件的形式加载到客户端的。进一步地,在一个可选的实施例中,步骤s105包括:按照预先设定的压缩规则,删除不影响编译根据客户端所在系统的需求而开发的组件的代码的空格和注释;和/或将在用于实现根据客户端所在系统的需求而开发的组件的代码中的、除了根据编码规则约定的变量名之外的变量名替换成占用的字节数量更少的变量名。本发明实施例的有益效果在于:一方面,可以删除不影响编译根据客户端所在系统的需求而开发的组件的代码的空格和注释,可以减少客户端的服务器加载代码所占用的内存,从而提高页面的加载速度;另一方面,将变量名替换为占用字节数量更少的变量名,可以占用更少的内存,从而提高页面的加载速度。作为上述可选的实施例的一个具体事例,可以将代码中原有的变量名testinformation全部替换为新的变量名testinfo,对于客户端来说,加载替换后的新的变量名testinfo与加载原有的变量名testinformation所产生的页面效果是相同的,然而,加载替换后的新的变量名testinfo在内存中占用的字节数量更少,因此可以见微知著地看出采用这种方式替换成占用字节数量更少的变量名可以占用更少的内存,从而提高页面的加载速度。进一步地,在一个可选的实施例中,上述方法还包括:在从客户端接收到加载第三方插件的请求的时候,压缩用于实现第三方插件的代码,以及将经压缩的用于实现第三方插件的代码加载到客户端,其中,用于实现第三方插件的代码是采用java脚本语言或级联样式表css语言开发的。该可选的实施例的有益效果在于:在将用于实现第三方插件的代码加载到客户端之前,压缩该代码,在将其加载到客户端;从而最大程度地降低客户端的页面加载用于实现第三方插件的代码所占用的内存,进一步提高页面的加载速度。进一步地,在一个可选的实施例中,压缩用于实现第三方插件的代码的步骤,包括:按照预先设定的压缩规则,删除不影响编译第三方插件的代码的空格和注释;和/或将在用于实现第三方插件的代码中的、除了根据编码规则约定的变量名之外的变量名替换成占用的字节数量更少的变量名。通过上述可选的实施例的教示,本领域普通技术人员可以理解本发明实施例的有益效果,在此不再赘述。另一方面,在本发明的一个可选的实施例中,经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码是用于实现对客户端的界面进行初始化的组件的代码;在将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端的步骤之后,该方法还包括:在从客户端接收到子页面加载请求的时候,将子页面加载请求所请求加载的子页面的组件的代码以及子页面的数据加载到客户端。在将子页面的组件的代码和子页面的数据加载到客户端之前,将每个页面划分为多个子页面,每次加载子页面的组件的代码和数据的时候,以每个子页面作为单位,加载组件的代码和数据。本发明实施例的有益效果在于:将每个页面划分成多个子页面以进行加载,按照子页面加载请求每次仅加载该子页面加载请求所请求加载的子页面的组件的代码和数据,但是并不加载其他子页面的组件的代码和数据,以减少所占用的内存,提高页面加载速度,提高页面响应速度。进一步地,在一个可选的实施例中,将子页面加载请求所请求加载的子页面的组件的代码以及子页面的数据加载到客户端的包装的步骤,包括:压缩子页面加载请求所请求加载的子页面的组件的代码,以及将经压缩的子页面加载请求所请求加载的子页面的组件的代码加载到客户端。进一步地,在一个可选的实施例中,压缩子页面加载请求所请求加载的子页面的组件的代码的步骤,包括:按照预先设定的压缩规则,删除不影响编译子页面加载请求所请求加载的子页面的组件的代码的空格和注释;和/或将在压缩子页面加载请求所请求加载的子页面的组件的代码中的、除了根据编码规则约定的变量名之外的变量名替换成占用的字节数量更少的变量名。下面以一个具体的示例来说明在本申请中提供的方法。在这个示例中,在采用本申请提供的方法处理之前的代码是:在采用本申请提供的方法处理后的代码是:(function(e){"function"==typeofdefine&&define.amd?define(["jquery"],e):e(jquery)})(function(e){functiont(t,s){vara,n,r,o=t.nodename.tolowercase();return"area"===o?(a=t.parentnode,n=a.name,t.href&&n&&"map"===a.nodename.tolowercase()?(r=e("img[usemap=#"+n+"]")[0],!!r&&i(r)):!1):(/input|select|textarea|button|object/.test(o)?!t.disabled:"a"===o?t.href||s:s)&&i(t)}functioni(t){returne.expr.filters.visible(t)&&!e(t).parents().addback().filter(function(){return"hidden"===e.css(this,"visibility")}).length}其中,在处理之前的代码中的数据(诸如,“keycode:{……up:38}”(键盘编码)等等)是通过发送超文本传输协议(hypertexttransferprotocol,简称http)请求的方式而获取的。在采用本申请提供的方法处理后的代码中,不包括这些数据。在处理之前的代码中的变量名也被替换成占用的字节数量更少的变量名,例如但不限于以下的列表所列出的项目:处理前的变量名经处理的变量名1elementt2factorye3mapnamen4nodenameo5istabindexnotnans删除代码中的注释,诸如,处理前的代码段中的“//browserglobals”、“//amd.registerasananonymousmodule.”。删除代码中不影响编译根据客户端所在系统的需求而开发的组件的代码中的回车字符、空格字符、分号字符。将原代码中的语句替换成占用的字节数量更少的代码。诸如,将if语句替换成采用“?”字符连接的语句。本发明的实施例还提供了一种加快页面加载速度的装置,该装置包括系统组件代码压缩模块205和系统组件代码加载模块209。系统组件代码压缩模块205,设置成在从请求加载页面的客户端接收到加载根据客户端所在系统的需求而开发的组件的请求的时候,压缩用于实现根据客户端所在系统的需求而开发的组件的代码,以及系统组件代码加载模块209,设置成将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端;其中,用于实现根据客户端所在系统的需求而开发的组件的代码是采用java脚本语言或级联样式表css语言开发的。需要说明的是,上述加快页面加载速度的装置可以是服务器端的一部分,也可以作为在服务器端之外独立的装置而应用于服务器端。进一步地,在一个可选的实施例中,该装置还包括:插件代码压缩模块,设置成在从客户端接收到加载第三方插件的请求的时候,压缩用于实现第三方插件的代码,以及插件代码加载模块,设置成将经压缩的用于实现第三方插件的代码加载到客户端,其中,用于实现第三方插件的代码是采用java脚本语言或级联样式表css语言开发的。进一步地,在一个可选的实施例中,经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码是用于实现对客户端的界面进行初始化的组件的代码;该装置还包括:子页面加载模块,设置成在系统组件代码加载模块209将经压缩的用于实现根据客户端所在系统的需求而开发的组件的代码加载到客户端之后,子页面加载模块在从客户端接收到子页面加载请求的时候,将子页面加载请求所请求加载的子页面的组件的代码、以及子页面加载请求所请求加载的子页面的数据加载到客户端。虽然本发明所揭露的实施方式如上,但上述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1