CN104219277A - 重排服务器响应 - Google Patents
重排服务器响应 Download PDFInfo
- Publication number
- CN104219277A CN104219277A CN201410230667.0A CN201410230667A CN104219277A CN 104219277 A CN104219277 A CN 104219277A CN 201410230667 A CN201410230667 A CN 201410230667A CN 104219277 A CN104219277 A CN 104219277A
- Authority
- CN
- China
- Prior art keywords
- code
- pmc
- file
- css
- client
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Abstract
本发明涉及重排服务器响应。提供了一种用于响应于客户端浏览器的请求(REQ)而重排服务器响应(RESP)的方法和系统,其中,客户端请求(REQ)请求获得给定网页,并且其中,相关的服务器响应(RESP)包括具有内部代码部分形式和外部代码部分形式的客户端指令的页面标记代码(PMC),外部代码部分位于文件内,所述文件的链接在页面标记代码(PMC)内,本发明包括:a)处理页面标记代码(PMC)以获得重排的页面标记代码(R_PMC),使得代码部分中的至少一些根据优化准则以统一的方式进行分组;以及b)响应于客户端请求(REQ)而提供待发送至客户端(CL)的重排的服务器响应(R_RESP),重排的服务器响应(R_RESP)包括利用前述项的处理获得的重排的页面标记代码(R_PMC)。
Description
技术领域
本发明涉及用于响应于客户端浏览器的请求而重排服务器响应的方法和系统。
背景技术
如今的软件应用日益以网络应用的形式进行编写,即软件应用以浏览器支持的编程语言进行编码,并且依赖于通用网络浏览器使应用程序可执行。由于网络浏览器的普及以及使用网络浏览器作为客户端的便利性,网络应用很受欢迎。遗憾的是,如今的网络应用和网站通常遭受性能问题,这主要是由于带宽使用、客户端和服务器之间的数据交换时间、网页加载时间、网页呈现持续时间等的较差优化。
如今的网络应用和网站的另一典型技术问题是开发工具和开发人员通常不检查客户端浏览器限制。公知的浏览器限制包括:包括每页的CSS的最大数目;以及脚本资源的最大长度等。
许多软件开发人员使用服务器侧技术如Microsoft.NET来设计复杂网络应用,该服务器侧技术是使软件开发人员能够使用可视化工具、预构建控件、主题等来编写复杂网络应用的优异框架。
然而,这样的项目组件的高层视觉不允许软件开发人员获知如何在客户端侧呈现所有的服务器侧逻辑。这是复杂网络应用和网站通常经受低水平性能的原因。
此外,有时也可能存在其他性能问题,这些问题在最坏的情况下可能变为阻碍问题并且可能证实难以被检测到,比如像由浏览器管理的CSS的最大数目、视图状态客户端控件的大小、直接写入页面的网页Java脚本和CSS代码,以及这些脚本在代码中的位置;事实上,例如,由于浏览器网络线程的限制,处于页面的不适当位置处的Java脚本代码可能导致客户端性能的降低。
因此,如今客户在全世界内开放大量服务咨询,以报告同样由上述一些较差性能水平引起的网络应用和网站的若干可用性问题。对于这些客户中的多数客户,软件系统的性能程度是选择软件供应商和推进软件供应商应对未来挑战的能力的关键问题。
在网络应用和网站中,继客户端和服务器之间的握手过程之后,网页通过客户端屏幕上的浏览器呈现为视觉实体,其中该握手过程包括从客户端到服务器的请求序列和从服务器到客户端的响应序列。
图1是示意性示出根据现有技术的、由客户端浏览器请求网页和服务器响应的示例的框图。
假设在客户端CL处的浏览器向服务器SRV制定请求REQ以获得具有给定URL的网页。
服务器以响应RESP的方式对客户端作出响应,该响应RESP是包含以HTML语言编写的页面标记代码PMC的数据流,该页面标记代码PMC包括待由客户端执行的指令序列。
如本领域的技术人员所知,网页标记代码PMC通常还可以包括以下中的一个或多个:
–存在于页面标记代码PMC中的一组CSS代码部分;
–存在于页面标记代码PMC中的一组脚本;
–至外部CSS文件的一组链接;以及
–至外部脚本文件的一组链接。
还要注意,如本领域的技术人员所知,至外部文件(即CSS文件或脚本文件)的链接可以涉及静态文件或动态文件。动态文件是在运行时构建的,并且其内容中的一些内容根据客户端请求进行改变;相反,静态文件被存储在文件系统中,并且其内容通常不会改变。取决于相关的服务器处理,动态资源通常针对每个新客户端请求而改变,并且客户端通常不“先验地”清楚外部链接是涉及动态文件类型还是替代地涉及静态文件类型。相反,服务器通常能够获知外部文件是动态类型还是静态类型。通常通过多种公知的适宜方式比如像文件名或文件url句法,或者通过验证文件是否存在于给出其url的文件系统内,文件是动态类型还是静态类型的知识被提供至服务器。
因此,如图1所示,至客户端CL的服务器响应RESP是以html语言HTML编写的页面标记代码PMC形式,该页面标记代码PMC包括头部HEAD和本体(未示出),并且还可以包括以下中的一个或多个:
–样式资源链接STRL:至CSS文件的链接;
–脚本资源链接SCRL:至脚本文件的链接;
–页面脚本代码PSCC:存在于页面标记代码PMC中的脚本部分;
–页面样式代码PSTC:存在于页面标记代码PMC中的CSS部分;以及
–其他网络资源链接OWRL:至(不同于CSS和脚本文件的)任何其他通用网络资源,例如图像、视频、音乐文件、Excel文件、Word文件等的链接。
要注意,页面样式代码或页面脚本代码均是存在于标记代码PMC中的代码部分,其可以在运行之前就存在或在运行时由服务器侧进程插入。
根据网页握手过程,具有在客户端/服务器通信交换中所需的三个主要步骤:
步骤1)客户端CL向服务器SRV发送请求REQ,例如打开具有给定URL的网页;
步骤2)服务器SRV生成响应RESP,该响应RESP包括页面标记代码PMC形式的客户端指令,以用于执行步骤1)的请求REQ;以及
步骤3)客户端CL分析在步骤2)中所接收的响应RESP并执行所包括的指令,其中,该指令具有向服务器SRV请求要从服务器下载的所有必需资源的请求序列,并且对它们进行处理以使所请求呈现的网页内容可视化。要下载的这种必需资源可以包括图像、声音、CSS样式、脚本以及其他。
如本领域的技术人员所知,在步骤3),终端用户通常遭受到性能问题,例如页面呈现缓慢、长时间等待和页面死机。
本发明意在解决的性能问题通常归因于:网络和浏览器限制;以及服务器响应RESP的页面标记代码PMC通常不是以用于减少网络使用和其限制副作用的优化方式进行编写的。
用于处理上述性能问题的公知方法包括在服务器侧和客户端侧进行调查,例如通过调查硬件、资源消耗、日志、数据存储以及数据处理时间等。遗憾的是,在考虑到客户端请求的情况下,这种方法经受服务器响应未被优化的缺点。这可能意味着:由于大量网络资源(脚本、CSS样式、图像、声音、Word和Excel文档等)的下载时间并且由于资源的呈现时间等,所以要由浏览器处理的客户端侧生成代码的量非常大。
用于处理上述性能问题的其他方法包括在两侧(即客户端侧和服务器侧)上对网络应用进行重新设计。遗憾的是,这样的方法经受以下缺点:由于第三方组件是非开放源码,所以所有所需的源代码有时不可用;需要高的软件技能;需要大量时间精力;以及涉及维护工作和高成本。
用于处理上述性能问题的其他方法包括改进硬件。遗憾的是,这样的方法经受以下缺点:中到高的成本;应用必须是可扩展的;以及可能不足以获得良好性能。
用于处理上述性能问题的其他方法使用代理缓存系统。遗憾的是,这样的方法由于对流量进行缓存的存储系统而经受使数据一致性面临风险的缺点。此外,代理系统通常是在网络服务器和客户端中间的独立外部系统,因此代理系统需要是相当快速的系统,以避免在请求和响应之间引入延迟,因而需要高的硬件成本和非常快速的网络。
发明内容
因此,本发明的目的在于通过以下方式来克服上述缺点:提供用于响应于客户端浏览器的请求而重排服务器响应RESP的方法和系统,使得客户端的执行被优化,从而使上述性能问题最小化。
上述目的是通过用于响应于客户端浏览器的请求而重排服务器响应的方法和系统来实现的,其中,客户端请求进行请求以获得给定网页,并且其中,相关的服务器响应包括具有内部代码部分形式和外部代码部分形式的客户端指令的页面标记代码,该外部代码部分位于文件内,并且所述文件的链接在页面标记代码内,本发明包括:
a)处理页面标记代码以获得重排的页面标记代码,使得代码部分中的至少一些根据优化准则以统一的方式进行分组;以及
b)响应于客户端请求来提供待发送至客户端CL的重排的服务器响应,所述重排的服务器响应包括利用前述步骤的处理所获得的重排的页面标记代码。
在本发明的实施方式中,外部代码部分可以包括脚本文件中包括的外部脚本部分,并且其中,项a)可以包括以下子项:
a21)将脚本文件的所有内容合并到一个脚本元文件中;
a22)在重排的页面标记代码中,优选在其底部,将脚本元文件链接;以及
a23)从重排的页面标记代码中移除至外部脚本文件的所有链接。
在本发明的实施方式中,外部代码部分可以包括CSS文件中包括的外部CSS部分,并且其中,项a)可以包括以下子项:
a31)将CSS文件的所有内容合并到一个CSS元文件中;
a32)在重排的页面标记代码的头部中,将CSS元文件链接;以及
a33)从重排的页面标记代码中移除至外部CSS文件的所有链接。
在本发明的实施方式中,内部代码部分可以包括内部脚本部分,其中,子项a21)还可以包括将所有内部脚本部分合并到脚本元文件;并且其中,子项a23)还可以包括从重排的页面标记代码中移除所有的内部脚本部分。
在本发明的实施方式中,内部代码部分可以包括内部脚本部分,并且其中,项a)可以包括以下子项:
a51)将所有的内部脚本部分合并到一个脚本元文件;
a52)在重排的页面标记代码中,优选在其底部,将脚本元文件链接;以及
a53)从重排的页面标记代码中移除所有的内部脚本部分。
在本发明的实施方式中,内部代码部分可以包括内部CSS部分,其中,子项a31)还可以包括将所有的内部CSS部分合并到CSS元文件中;并且其中,子项a33)还可以包括从重排的页面标记代码中移除所有的内部CSS部分。
在本发明的实施方式中,内部代码部分可以包括内部CSS部分,并且其中,项a)可以包括以下子项:
a71)将所有的内部CSS部分合并到一个CSS元文件;
a72)在重排的页面标记代码的头部,将CSS元文件链接;以及
a73)从重排的页面标记代码中移除所有的内部CSS部分。
在本发明的实施方式中,优选地,可以通过如下方式单独处理动态文件和静态文件:创建动态元文件和静态元文件;将动态文件的内容合并到相应的动态元文件中;并且优选将缓存报头添加至静态元文件(即具有非动态内容的元文件),以使客户端在给定间隔时间内对该静态元文件进行缓存,这可以方便地进行参数化。
在本发明的实施方式中,元文件中的至少一个可以被赋予全局可见性。
在本发明的实施方式中,元文件中的至少一个和重排的页面标记代码可以有利地进行缩小和/或压缩。
此外,可以提供包括计算机程序代码的计算机程序单元,该计算机程序代码在被加载到计算设备的数字处理器中时,用于执行根据上述方法的步骤。
另外,可以提供存储在计算机可用介质上的计算机程序产品,该计算机程序产品包括用于使计算设备执行上述方法的计算机可读程序代码。
利用本发明的实施方式,通过控制在服务器侧生成的响应,便利地实现了在客户端侧的控制。实际上,通过本发明的实施方式,在服务器侧的处理使得客户端代码的功能逻辑优化。
利用本发明的实施方式,优化了网络应用的性能。
通过减少所需的带宽使用、通过减少客户端和服务器之间数据交换量以及通过在客户端侧需要较少的细化时间,本发明的实施方式使得客户端侧执行性能改善。
本发明的实施方式通过优化由服务器侧处理产生的源代码而使得能够加快整个网页的生命周期。性能优化不仅对客户端侧的网络连接的性能具有积极影响,而且对服务器侧的处理速度具有积极影响。实际上,本发明的实施方式允许对从客户端到达服务器,以及作为第二步,从服务器到客户端的请求的管理进行改进。
本发明的实施方式允许进行全面优化。
本发明的实施方式在不需要通过系统集成商或软件开发商对代码进行重新设计的情况下实现了性能收益。因为不需要代码的重新设计并且还由于维护过程中所需的较少努力,在成本降低方面获得了明显技术优势。此外,保留了源代码的知识产权。
本发明的实施方式允许透明集成,这是因为服务器响应的重排是在服务器处理结束时且在上传到客户端之前执行的。
本发明的实施方式允许与预先存在的应用快速集成。例如,在制造执行系统的领域中,本发明的实施方式可以以简单的方式与基于由西门子公司开发的html的其他Simatic-IT网站和网络应用集成。
本发明的实施方式允许避免潜在的性能问题,所述问题可能是先验未知的,或者可能在规划时未被开发人员考虑到,或者可能是不可由开发人员的源代码直接管理的。
通过本发明的实施方式进行的服务器响应重排能够获得以下结果:
–具有清洁的源代码的重排的页面标记代码;
–最小数量的CSS资源和脚本资源;以及
–通过缩小和/或压缩引起的内容减少。
本发明的实施方式能够获得被称为静态CSS元文件的仅一个静态CSS文件,该静态CSS元文件将所有静态CSS文件的内容集合在一起,并且具有以下优点:
–具有仅一个静态CSS文件减少了客户端浏览器需要打开以下载静态CSS资源的连接的数目,在客户端缓存期满之前只执行一次下载;
–可以有利地插入缓存报头以使客户端对这样的静态CSS元文件进行缓存,以节省带宽并且减少客户端和服务器之间所交换数据的量;以及
–在重排的页面标记代码的头部中,这种静态CSS元文件可以方便地链接,以减少客户端细化时间。
本发明的实施方式能够获得被称为动态CSS元文件的仅一个动态CSS文件,该动态CSS元文件将所有动态CSS文件的内容集合在一起,并且具有以下优点:
–具有仅一个动态CSS文件减少了客户端浏览器需要打开以下载动态CSS资源的连接的数目;以及
–在重排的页面标记代码的头部中,这种动态CSS元文件可以方便地链接,以减少客户端细化时间。
本发明的实施方式能够获得被称为静态脚本元文件的仅一个静态脚本文件,该静态脚本元文件将所有静态脚本文件的内容集合在一起,并且具有以下优点:
–具有仅一个静态脚本文件减少了客户端浏览器需要打开以下载静态脚本资源的连接的数目,在客户端缓存期满之前只执行一次下载;
–可以有利地插入缓存报头以使客户端对这样的静态脚本元文件进行缓存,以节省带宽并且减少客户端和服务器之间所交换数据的量;以及
–在重排的页面标记代码中,优选在其底部,这种静态脚本元文件可以方便地链接,以减少客户端细化时间。
本发明的实施方式能够获得被称为动态脚本元文件的仅一个动态脚本文件,该动态脚本元文件将所有动态脚本文件的内容集合在一起,并且具有以下优点:
–具有仅一个动态脚本文件减少了客户端浏览器需要打开以下载动态脚本资源的连接的数目;以及
–在重排的页面标记代码中,优选在其底部,这种动态脚本元文件可以链接,以减少客户端细化时间。
要注意,在重排的页面标记代码的底部将静态/动态脚本元文件链接是可选的,这是因为可能存在不推荐将脚本链接定位在底部的一些情况或浏览器类型。
本发明的实施方式能够从重排的页面标记代码中移除CSS/脚本内容,并且将该CSS/脚本内容置于静态CSS/脚本元文件中,并且具有以下优点:
–节省带宽并且减少客户端和服务器之间所交换数据的量;以及
–减少客户端细化时间。
附图说明
现在将参照附图以优选但非排他性实施方式来描述本发明,在附图中:
图1是示意性示出根据现有技术(之前已描述)的、由客户端浏览器请求的网页和服务器响应的示例的框图;以及
图2是示意性示出根据本发明的示例性实施方式的、由客户端浏览器请求的网页和服务器响应的示例的框图。
具体实施方式
本发明的至少一些实施方式解决了上述问题,在这些实施方式中,将响应于客户端浏览器的请求REQ而生成的服务器响应RESP重排成重排的服务器响应R_RESP。客户端请求REQ请求获得给定网页,并且相关生成的服务器响应RESP包括具有内部代码部分形式和外部代码部分形式的客户端指令的页面标记代码PMC,该外部代码部分位于链接位于页面标记代码PMC内的文件中。
根据本发明的服务器响应RESP的重排包括以下步骤:
–处理页面标记代码PMC以获得重排的页面标记代码R_PMC,使得代码部分中的至少一些根据优化准则以统一的方式进行分组,不同类型的代码部分中的一些可以例如包括内部或外部代码部分、脚本或CSS样式以及动态或静态文件,在本发明的实施方式中,代码部分可以根据它们的类型进行分组;以及
–响应于客户端请求REQ而提供待发送至客户端CL的重排的服务器响应R_RESP,该重排的服务器响应R_RESP包括重排的页面标记代码R_PMC。
页面标记代码PMC包括要在客户端侧执行的指令,以用于示出给定网页。这种指令可以是内部代码部分和外部代码部分的形式。
外部代码部分位于在页面标记代码PMC内链接的(外部)文件中。这样的文件可以是脚本文件或CSS文件。另外,这样的脚本和CSS文件可以是静态或动态的。
相反,内部代码部分存在于页面标记代码PMC内。
结果,页面标记代码PMC包括以下中的一个或多个:
–至静态CSS文件的一组链接STRL;
–至动态CSS文件的一组链接STRL;
–至静态脚本文件的一组链接SCRL;
–至动态脚本文件的一组链接SCRL;
–一组CSS代码部分PSTC;以及
–一组脚本代码部分PSCC。
脚本内容的重排
在本发明的至少一些实施方式中,在页面标记代码PMC包括至脚本文件(其非空)的一组链接SCRL的情况下,将服务器响应RESP重排成重排的服务器响应R_RESP还可以包括以下步骤:
–将脚本文件的所有内容合并到一个脚本元文件中;
–在重排的页面标记代码R_PMC中,优选在其底部,将脚本元文件链接;以及
–从重排的页面标记代码R_PMC移除至脚本文件的所有链接。
另外,可以对静态和动态脚本文件进行不同处置,使得静态脚本文件的所有内容被合并到静态脚本元文件中,并且动态脚本文件的所有内容被合并到动态脚本元文件中。由于这样的划分,可以方便地将缓存报头添加至静态脚本元文件,以使客户端在预定义时间内对该静态脚本元文件进行缓存。
另外,在存在于页面标记代码内的一组脚本PSCC为非空的情况下,将服务器响应RESP重排成重排的服务器响应R_RESP还可以包括以下步骤:
–将脚本组的所有内容合并到(如果存在区别,则为静态)脚本元文件;以及
–从重排的页面标记代码R_PMC中移除所有脚本。
CSS内容的重排
在本发明的至少一些实施方式中,在页面标记代码PMC包括至CSS文件(其为非空)的一组链接STRL的情况下,将服务器响应RESP重排为重排的服务器响应R_RESP还可以包括以下步骤:
–将CSS文件的所有内容合并到一个CSS元文件中;
–在重排的页面标记代码R_PMC的头部中,将CSS元文件链接;以及
–从重排的页面标记代码R_PMC中移除至CSS文件的所有链接。
另外,可以对静态和动态CSS文件进行不同处置,使得静态CSS文件的所有内容被合并到静态CSS元文件中,并且动态CSS文件的所有内容被合并到动态CSS元文件中。由于这样的划分,可以方便地将缓存报头添加至静态CSS元文件,以使客户端在预定义时间内对该静态CSS元文件进行缓存。
另外,在存在于页面标记代码内的一组CSS代码部分PSTC为非空的情况下,将服务器响应RESP重排成重排的服务器响应R_RESP还可以包括以下步骤:
–将CSS代码部分组的所有内容合并到(如果存在区别,则为静态)CSS元文件;以及
–从重排的页面标记代码R_PMC中移除所有的CSS代码部分。
总之,在根据本发明的实施方式的重排的服务器响应R_RESP中,可以执行以下优化中的一个或多个:
Ⅰ.可以将所有静态脚本文件的内容合并到具有缓存报头的一个静态脚本元文件中(以使客户端在预定义时间内对静态脚本元文件进行缓存);在重排的页面标记代码R_PMC中,优选在其底部,链接这样的静态脚本元文件;从重排的页面标记代码R_PMC中移除至所有静态脚本文件的所有链接;
Ⅱ.可以将存在于页面标记代码PMC中的所有脚本部分合并到静态脚本元文件,并且从重排的页面标记代码R_PMC中移除所有这样的脚本部分;
Ⅲ.将所有动态脚本文件的内容合并到不具有缓存报头的一个动态脚本元文件中;在重排的页面标记代码R_PMC中,优选在其底部,链接这样的动态脚本元文件;从重排的页面标记代码R_PMC中移除至所有动态脚本文件的所有链接;
Ⅳ.可以将所有静态CSS文件的内容合并到具有缓存报头的一个静态CSS元文件中(以使客户端在预定义时间内对静态CSS元文件进行缓存);在重排的页面标记代码R_PMC的头部中,链接这样的静态CSS元文件,并且从重排的页面标记代码R_PMC中移除至所有静态CSS文件的所有链接;
Ⅴ.可以将存在于页面标记代码PMC中的所有CSS代码部分合并到静态CSS元文件,并且从重排的页面标记代码R_PMC中移除所有这样的CSS代码部分;以及
Ⅵ.将所有动态CSS文件的内容合并到不具有缓存报头的一个动态CSS元文件中;在重排的页面标记代码R_PMC的头部中,链接这样的动态CSS元文件,并且从重排的页面标记代码R_PMC中移除至所有动态CSS文件的所有链接。
在本发明的至少一些实施方式中,向元文件中的至少一个给予全局可见性,使得该元文件成为全局元文件。具有全局元文件特别有利,原因在于:在另一浏览器向服务器发出请求,且该请求与先前浏览器向该服务器发出的请求中的任一个相同的情况下,全局元文件可以重复使用而无需由服务器重新生成,具有通过节省CPU时间而带来的显著性能改善。在其他实施方式中,浏览器可以发出与先前请求“类似”的请求,其中,所请求资源中的仅一些与来自其他服务器的先前请求相同,在这种情况下,全局元文件中的仅一些可以方便地重复使用。
为了快速访问全局元文件,这样的文件可以在给定间隔时间内在服务器存储器中进行缓存,这可以进行参数化。
在本发明的实施方式中,至少一个脚本和/或CSS元文件可以有利地缩小和/或压缩。而且,清洁的html代码也可以被缩小和/或压缩。
压缩和缩小是本领域的技术人员已知的性能优化。从维基百科获得的关于观点(voice)“缩小”的以下摘录提供了一些简要说明:
–缩小(也为最简化或最小化)在计算机程序设计语言并且尤其是在JavaScript中是从源代码移除所有不必要的字符而不改变其功能的过程。这些不必要的字符通常包括空白字符、换行字符、注释、有时为块分隔符,其均用于增加代码的可读性而不需要被执行;
–经缩小的源代码对于HTML代码也非常有用。作为示例,在HTML中的连续空白字符被呈现为单个空格,所以用单个空格来替换所有的空白序列可以显著减少页面的大小;
–缩小区别于数据压缩较通用概念在于经缩小的源可以立即被翻译而不需解压步骤:同样的翻译器可以与原始代码和经缩小的源两者工作;以及
–可以缩小JavaScript和CSS资源,保持其行为同时显著减小其文件大小。
脚本元文件的缩小的示例可以包括:
–移除不必要的空格、换行符;
–移除注释;
–移除不必要的分号;
–从包括仅一个语句的代码块中移除花括号;
–用较短的名称对局部变量和函数重命名;
–将多个独立变量声明组合成一个语句;
–从不带参数的“If”构造函数中移除空括号;以及
–将数组构造函数转换为数组常量。
CSS元文件的缩小的示例可以包括:
–移除注释;
–移除所有额外的缩进、空格和换行符;
–移除闭括号之前的最后分号;以及
–移除空样式块。
虽然以上概念在本领域是已知的,但技术人员肯定理解具有对利用本发明的重排处理所获得的元文件或经清理源代码执行这种优化的可能性所带来的巨大技术优势。在元文件为由若干客户端浏览器使用的全局文件的情况下,这样的优势甚至更加显著。
图2是示意性示出根据本发明的示例性实施方式的、由客户端浏览器请求网页和服务器响应的示例的框图。
本发明的至少一些实施方式可以通过位于服务器侧的被称为网络循环加速器WCA的模块来实现。
所提出的网络循环加速器WCA也可以被视为在服务器上运行并且被人为插入到目标网络应用中作为优化层的模块。通过这种方式获得准备发送回客户端的服务器响应RESP作为输入,对其进行优化并且以包括重排的页面标记代码R_PMC的重排的响应R_RESP的形式将其发送回客户端。重排的页面标记代码以统一且有序的方式进行优化,以具有:
–头部HEAD,其也包括至静态和/或动态的CSS元文件的链接CSSLINKS;
–htlm本体BODY;以及
–包括至静态和/或动态的脚本的链接的部分SCRIPT LINKS,其可选地位于重排的页面标记代码R_PMC的底部处。
这样的交互对于客户端和服务器两者均是透明的,客户端和服务器不会注意到重排的响应是重新设计的响应。
用简单数值示例来示出通过WCA的实施方式实现的技术优点。
假设给定的网络应用使用:
–10个静态脚本文件(每个10kb);
–存在于页面PMC中的5kb脚本代码部分;
–10个静态CSS文件(每个10kb);
–在页面PMC中,3kb CSS代码部分;
–5个动态脚本文件(每个10kb);以及
–5个动态CSS文件(每个10kb)。
要注意,以上所示的示例没有考虑通过缩小和压缩能够实现的其他可能优化。
如果缩小和压缩是活动的,则可以进一步减小资源和页面尺寸。根据其内容,缩小也可以例如实现50%的缩减,而对于压缩,可以使用例如gzip算法以潜在地实现71%的缩减。因而,对于以上所示的简单数值示例,从将资源的尺寸从308kb减少到154kb的缩小可以理论性地且最优地实现50%的缩减,且其可以利用gzip而最终被压缩71%,来在处理结束时获得要下载的109kb资源。同样的处理也可以应用于页面标记本体。
要注意,利用本发明的实施方式实现的性能改善取决于最初设计/开发原始页面标记的方式。
要注意,在现有技术中已知的代理缓存系统相比于本发明的实施方式实现较少的性能改善;例如,如果网络应用具有15个CSS文件,那么代理缓存系统可以将这些文件缓存,使得客户端可以较快地下载这些文件,但利用本发明的实施方式,这样的文件还可以合并到仅一个元文件中,使得性能改善甚至更大。
所用缩写词的列表
CSS 级联样式表
HTML 超文本标记语言
URL 统一资源定位器
WCA 网络循环加速器
Claims (12)
1.一种用于响应于客户端浏览器的请求(REQ)而重排服务器响应(RESP)的方法,其中,所述客户端请求(REQ)请求获得给定网页,并且其中,相关的服务器响应(RESP)包括具有内部代码部分形式和外部代码部分形式的客户端指令的页面标记代码(PMC),所述外部代码部分位于文件中,并且所述文件的链接处于所述页面标记代码(PMC)内,
所述方法包括以下步骤:
a)处理所述页面标记代码(PMC)以获得重排的页面标记代码(R_PMC),使得代码部分中的至少一些根据优化准则以统一的方式进行分组;以及
b)响应于所述客户端请求(REQ)来提供待发送至客户端(CL)的重排的服务器响应(R_RESP),所述重排的服务器响应(R_RESP)包括利用前述步骤的处理所获得的所述重排的页面标记代码(R_PMC)。
2.根据权利要求1所述的方法,其中,所述外部代码部分包括外部脚本部分,所述外部脚本部分包括在脚本文件中,并且其中,所述步骤a)包括以下子步骤:
a21)将所述脚本文件的所有内容合并到一个脚本元文件中;
a22)在所述重排的页面标记代码(R_PMC)中,优选在其底部,将所述脚本元文件链接;以及
a23)从所述重排的页面标记代码(R_PMC)中移除至所述外部脚本文件的所有链接(STRL)。
3.根据前述权利要求中任一项所述的方法,其中,所述外部代码部分包括外部CSS部分,所述外部CSS部分包括在CSS文件中,并且其中,所述步骤a)包括以下子步骤:
a31)将所述CSS文件的所有内容合并到一个CSS元文件中;
a32)在所述重排的页面标记代码(R_PMC)的头部中,将所述CSS元文件链接;以及
a33)从所述重排的页面标记代码(R_PMC)中移除至所述外部CSS文件的所有链接(SCRL)。
4.根据权利要求2所述的方法,其中,所述内部代码部分包括内部脚本部分(PSCC),其中,所述子步骤a21)还包括将所有的所述内部脚本部分(PSCC)合并到所述脚本元文件中,并且其中,所述子步骤a23)还包括从所述重排的页面标记代码(R_PMC)中移除所有的所述内部脚本部分(PSCC)。
5.根据权利要求1或4所述的方法,其中,所述内部代码部分包括内部脚本部分(PSCC),并且其中,所述步骤a)包括以下子步骤:
a51)将所有的所述内部脚本部分(PSCC)合并到一个脚本元文件中;
a52)在所述重排的页面标记代码(R_PMC)中,优选在其底部,将所述脚本元文件链接;以及
a53)从所述重排的页面标记代码(R_PMC)中移除所有的所述内部脚本部分(PSCC)。
6.根据权利要求3所述的方法,其中,所述内部代码部分包括内部CSS部分(PSTC),其中,所述子步骤a31)还包括将所有的所述内部CSS部分(PSTC)合并到所述CSS元文件中,并且其中,所述子步骤a33)还包括从所述重排的页面标记代码(R_PMC)中移除所有的所述内部CSS部分(PSTC)。
7.根据权利要求1、2、4或5所述的方法,其中,所述内部代码部分包括内部CSS部分(PSTC),并且其中,所述步骤a)包括以下子步骤:
a71)将所有的所述内部CSS部分(PSTC)合并到一个CSS元文件中;
a72)在所述重排的页面标记代码(R_PMC)的头部(HEAD)中,将所述CSS元文件链接;以及
a73)从所述重排的页面标记代码(R_PMC)中移除所有的所述内部CSS部分(PSTC)。
8.根据前述权利要求中任一项所述的方法,其中,通过以下方式与静态文件相比分开地处理动态文件:创建动态元文件和静态元文件;将所述动态文件的内容合并到相应的动态元文件中;以及优选将缓存报头添加到所述静态元文件,亦即具有非动态内容的元文件,以使所述客户端在给定时间内对所述静态元文件进行缓存。
9.根据前述权利要求中任一项所述的方法,其中,元文件中的至少一个被赋予全局可见性。
10.根据前述权利要求中任一项所述的方法,其中,对所述重排的页面标记代码和所述元文件中的至少一个进行缩小和/或压缩。
11.一种用于执行根据权利要求1至10中任一项所述的方法的步骤的计算机程序产品。
12.一种用于响应于客户端浏览器的请求(REQ)而重排服务器响应(RESP)的系统,其中,所述客户端请求(REQ)请求获得给定网页,并且其中,相关的服务器响应(RESP)包括具有内部代码部分形式和外部代码部分形式的客户端指令的页面标记代码(PMC),所述外部代码部分位于文件中,并且所述文件的链接处于所述页面标记代码(PMC)内,
所述系统包括:
a)用于处理所述页面标记代码(PMC)的装置,以便获得重排的页面标记代码(R_PMC),使得代码部分中的至少一些根据优化准则以统一的方式进行分组;以及
b)用于响应于所述客户端请求(REQ)来提供待发送至客户端(CL)的重排的服务器响应(R_RESP)的装置,所述重排的服务器响应(R_RESP)包括利用前述项所获得的所述重排的页面标记代码(R_PMC)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13169871.4 | 2013-05-30 | ||
EP13169871.4A EP2808794A1 (en) | 2013-05-30 | 2013-05-30 | Rearranging a server response |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104219277A true CN104219277A (zh) | 2014-12-17 |
Family
ID=48578804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410230667.0A Pending CN104219277A (zh) | 2013-05-30 | 2014-05-28 | 重排服务器响应 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140359429A1 (zh) |
EP (1) | EP2808794A1 (zh) |
CN (1) | CN104219277A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2621242A1 (en) | 2012-01-26 | 2013-07-31 | Panasonic Corporation | Improved discontinuous reception operation with additional wake up opportunities |
US20130290830A1 (en) * | 2012-04-30 | 2013-10-31 | Salesforce.Com, Inc. | System and method for managing a viewstate of a web application |
CN106951365B (zh) * | 2016-03-01 | 2020-04-03 | 北京航空航天大学 | 一种基于面向对象软件代码的软件复杂网络模型构建方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163156A (zh) * | 2007-09-27 | 2008-04-16 | 腾讯科技(深圳)有限公司 | 获取网络资源的方法、客户端与系统 |
CN101572727A (zh) * | 2009-06-11 | 2009-11-04 | 杭州华三通信技术有限公司 | 一种Web页面菜单控制方法和装置 |
US20100050089A1 (en) * | 2008-08-20 | 2010-02-25 | Company 100, Inc. | Web browser system of mobile communication terminal, using proxy server |
CN101764840A (zh) * | 2009-12-29 | 2010-06-30 | 金蝶软件(中国)有限公司 | Web页面数据的提供方法、web服务器及web应用系统 |
CN102571846A (zh) * | 2010-12-23 | 2012-07-11 | 北京启明星辰信息技术股份有限公司 | 一种转发http请求的方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418131B2 (en) * | 1998-11-25 | 2013-04-09 | Helmut Emmelmann | Interactive server side components |
AU2001234758A1 (en) * | 2000-02-04 | 2001-08-14 | America Online Incorporated | High performance "freeze-dried" dynamic web page generation |
US6728785B1 (en) * | 2000-06-23 | 2004-04-27 | Cloudshield Technologies, Inc. | System and method for dynamic compression of data |
SE520181C2 (sv) * | 2001-02-20 | 2003-06-10 | Incordia Ab | Metod vid programkonvertering |
US6785769B1 (en) * | 2001-08-04 | 2004-08-31 | Oracle International Corporation | Multi-version data caching |
US6941512B2 (en) * | 2001-09-10 | 2005-09-06 | Hewlett-Packard Development Company, L.P. | Dynamic web content unfolding in wireless information gateways |
US20030140100A1 (en) * | 2002-01-18 | 2003-07-24 | Sam Pullara | System and method for URL response caching and filtering in servlets and application servers |
US8001551B2 (en) * | 2007-04-24 | 2011-08-16 | Microsoft Corporation | Providing localized resources for client-side script execution |
US20090044101A1 (en) * | 2007-08-07 | 2009-02-12 | Wtviii, Inc. | Automated system and method for creating minimal markup language schemas for a framework of markup language schemas |
US8819539B1 (en) * | 2007-12-03 | 2014-08-26 | Appcelerator, Inc. | On-the-fly rewriting of uniform resource locators in a web-page |
US9058402B2 (en) * | 2012-05-29 | 2015-06-16 | Limelight Networks, Inc. | Chronological-progression access prioritization |
US9710765B2 (en) * | 2011-05-26 | 2017-07-18 | Facebook, Inc. | Browser with integrated privacy controls and dashboard for social network data |
US9503498B2 (en) * | 2011-09-29 | 2016-11-22 | International Business Machines Corporation | Web page script management |
US20140136952A1 (en) * | 2012-11-14 | 2014-05-15 | Cisco Technology, Inc. | Improving web sites performance using edge servers in fog computing architecture |
-
2013
- 2013-05-30 EP EP13169871.4A patent/EP2808794A1/en not_active Withdrawn
-
2014
- 2014-05-28 CN CN201410230667.0A patent/CN104219277A/zh active Pending
- 2014-05-30 US US14/291,130 patent/US20140359429A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163156A (zh) * | 2007-09-27 | 2008-04-16 | 腾讯科技(深圳)有限公司 | 获取网络资源的方法、客户端与系统 |
US20100050089A1 (en) * | 2008-08-20 | 2010-02-25 | Company 100, Inc. | Web browser system of mobile communication terminal, using proxy server |
CN101572727A (zh) * | 2009-06-11 | 2009-11-04 | 杭州华三通信技术有限公司 | 一种Web页面菜单控制方法和装置 |
CN101764840A (zh) * | 2009-12-29 | 2010-06-30 | 金蝶软件(中国)有限公司 | Web页面数据的提供方法、web服务器及web应用系统 |
CN102571846A (zh) * | 2010-12-23 | 2012-07-11 | 北京启明星辰信息技术股份有限公司 | 一种转发http请求的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2808794A1 (en) | 2014-12-03 |
US20140359429A1 (en) | 2014-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2724251B1 (en) | Methods for making ajax web applications bookmarkable and crawlable and devices thereof | |
JP6761112B2 (ja) | 提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム | |
US9361345B2 (en) | Method and system for automated analysis and transformation of web pages | |
US7870482B2 (en) | Web browser extension for simplified utilization of web services | |
CN103002010B (zh) | 一种基于增量数据的数据更新方法、装置和系统 | |
US10198414B2 (en) | Methods for optimizing interaction with a form in a website page and systems thereof | |
US10284671B2 (en) | Dynamic bundling of web components for asynchronous delivery | |
EP2044749B1 (en) | Dispatching request fragments from a response aggregating surrogate | |
US20130198613A1 (en) | Methods for tranforming requests for web content and devices thereof | |
CA2902200C (en) | Caching pagelets of structured documents | |
CN109413140B (zh) | Pacs服务器远程自动升级的方法 | |
CN109634753B (zh) | 切换浏览器内核的数据处理方法、装置、终端和存储介质 | |
US20120331038A1 (en) | Systems and methods for processing web service piped network requests | |
Pande et al. | Enhanced web application and browsing performance through service-worker infusion framework | |
CN102622376A (zh) | 用于合并层叠样式表文件的方法和设备 | |
CN104219277A (zh) | 重排服务器响应 | |
CN104915404A (zh) | 访问失效网址的方法和装置 | |
KR102060660B1 (ko) | 웹 브라우징 서비스를 제공하는 방법 및 장치 | |
CN103078805A (zh) | 使Zookeeper的读性能支持水平扩展的系统和方法 | |
US10719573B2 (en) | Systems and methods for retrieving web data | |
CN107220306B (zh) | 一种搜索方法和装置 | |
CN110134391A (zh) | 一种用于移动化页面的适配方法及装置 | |
Ling | Based on web application front-end performance optimization | |
CN112688980B (zh) | 资源分发方法、装置、计算机设备 | |
JP2012221483A (ja) | 利用開始を高速に行うWebベースのコンピュータ・システムを構築する技術の提供 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141217 |