CN102521266A - 一种实现Javascript文件动态压缩与合并方法 - Google Patents
一种实现Javascript文件动态压缩与合并方法 Download PDFInfo
- Publication number
- CN102521266A CN102521266A CN2011103721376A CN201110372137A CN102521266A CN 102521266 A CN102521266 A CN 102521266A CN 2011103721376 A CN2011103721376 A CN 2011103721376A CN 201110372137 A CN201110372137 A CN 201110372137A CN 102521266 A CN102521266 A CN 102521266A
- Authority
- CN
- China
- Prior art keywords
- javascript
- file
- request
- page
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种实现Javascript文件动态压缩与合并方法,包括:客户端用户发出页面请求;服务器根据客户端发出的请求进行分析,对于JaVascript请求,转入Javascript过滤器中;读取Javascript文件,动态地对JaVascript文件进行压缩和合并;tapestry框架对页面进行整合,展示到客户端。通过本发明提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法,可以很容易的实现修改JS脚本后不用重新压缩,在服务器加载页面时动态的对JS进行压缩,支持水平扩展,时效性强,易用性好。
Description
技术领域
本发明涉及互联网领域,特别是涉及一种在互联网应用中,基于Tapestry框架实现页面Javascript文件动态压缩的与合并的方法。
背景技术
在现在的互联网应用中,页面都引用的大量的JS脚本文件,而对JS文件进行压缩。有效的减少文件的大小,可以提高用户浏览页面的速度,减少HTTP请求,降低服务器的压力,给予用户的更好的体验方式。所以,现在的互联网应用中,JS整合以及压缩是很重要的一部分。
在现在JS(Javascript)满天飞的时代,大家都知道缓存能带来的巨大好处,但缓存确实是非常麻烦的一个问题,为了让程序更快,在服务器上为JS加上缓冲5天的代码,但产品更新后第二天就接到报告说***出错,详细了解后就发现是缓存引起的,让用户删除缓存后就会OK。原因很简单,就是JS已经修改了,但用户还在使用缓存中的老JS。或者每次修改JS文件后,都是要重新的再去压缩,再去整合JS文件把文件放到一起。如果修改比较多的部分。整合起来比较麻烦,容易遗忘。
针对现有JS压缩以及整合,都是在部署之前把JS脚本去压缩以及整合,当JS脚本发生变化时,重新更改JS文件,然后再去压缩文件来满足要求,时效性差,并且如果修改文件过多,容易忘记压缩部分文件造成未知的结果。
所以,需要提供一种新的实现页面JS文件动态压缩与合并方法,以解决以上的技术问题。
发明内容
本发明的目的在于提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法,可以解决当JS脚本修改后不能动态压缩及整合的缺点,需要重新更改JS文件,然后再去压缩文件来满足要求,造成时效性差,且修改文件过多容易忘记压缩部分文件造成未知结果的技术问题。
为了解决以上技术问题,本发明提供一种实现Javascript文件动态压缩与合并方法,包括:
客户端用户发出页面请求;
服务器根据客户端发出的请求进行分析,对于Javascript请求,转入Javascript过滤器中;
读取Javascript文件,动态地对Javascript文件进行压缩和合并;
tapestry框架对页面进行整合,展示到客户端。
进一步地,所述服务器根据客户端发出的请求进行分析,对于非页面Javascript的请求转入非Javascript过滤器进行处理。
进一步地,所述服务器根据客户端发出的请求进行分析,由TapestryFilter将请求转接到Tapestry框架。
进一步地,当请求实际到达渲染处理器时,该处理器向目标页面发出一个activate事件,为页面提供org.apache.tapestry5.internal.services.PageResponseRenderer服务。
进一步地,所述读取Javascript文件,动态地对Javascript文件进行压缩和合并,具体包括:Tapestry采用org.apache.tapestry5.services.MarkupRenderer服务获取页面中Javascript的文件,然后通过压缩的方法对Javascript文件进行动态压缩,Tapestry对压缩后的Javascript文件进行整合。
与现有技术相比,本发明提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法,可以很容易的实现修改JS脚本后不用重新压缩,在服务器加载页面时动态的对JS进行压缩,支持水平扩展,时效性强,易用性好。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法的流程图;
图2是本发明实施例提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法的流程图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明涉及基于Tapestry框架,在页面初始化的时候,对页面所需要的JS文件进行整合以及压缩。
Tapestry框架是一个位于java servlet容器和Tapestry应用程序之间的层。Tapestry不是一个独立运行的服务器;它是一个servlet的扩展,它运行于servlet容器(例如Tomcat)或包含servlet容器的应用服务器中(如Jbose,Websphere,或者WebLogic)。Tapestry应用其实是由一系列页面组成,而每个页面是由可以复用的组件构成。
JS(Javascript)主要是做界面的,用于客户端也就是浏览器端上执行的脚本开发,可以使网页有动态的效果(特效,如:图片、文字的滚动;层的动态切换,显示及隐藏;对html元素的操作;动态的对html内容修改;动态的修改CSS样式;实现如下拉列表的连动等等),可以进行表单的输入验证(如:邮箱、电话、邮编的合法性,输入内容长度及内容验证等)。Javascript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力;同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。
如图1所示,本发明提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法,包括:取得用户请求,分析用户请求的页面,取出用户请求所需的JS文件,对JS文件进行压缩与合并。具体包括:
步骤10、客户端用户发出页面请求。
步骤20、服务器根据客户端发出的请求进行分析,对于非页面JS的请求转入其他过滤器进行处理;对于JS请求,转入JS过滤器中。
步骤30、对JS文件进行读取,动态地对JS文件进行压缩,然后把JS文件合并到一起,动态地生成JS文件名称。
步骤40、最后由tapestry框架对页面进行整合,展示到客户端。
下面将结合实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
如图2所示,本发明实施例提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法,包括:
步骤1、客户端在页面上输入网址,发出请求。
步骤2、Tapestry5框架采用了一种非侵入式的集成方式,使用javax.servlet.Filter作为框架的入口,由TapestryFilter将请求转接到Tapestry框架。
步骤3、、当一个请求实际到达渲染处理器时,该处理器首先会向目标页面发出一个activate事件,为页面提供一个准备渲染,并处理传入参数的机会。
步骤4、渲染流程引入org.apache.tapestry5.internal.services.PageResponseRenderer服务,该服务会实际的调度页面渲染。
步骤5、环境构造是页面渲染器(PageMarkupRenderer)的一部分,对应于org.apache.tapestry5.services.MarkupRenderer服务。Tapestry采用一个管道了组织这个服务,在这个服务中,获取页面中JS的文件,然后通过压缩的方法对JS文件进行动态压缩,Tapestry对压缩后的JS文件进行整合(步骤6)。具体过程为:
首先,获得页面类型(content type),默认为“text/html”;然后,根据这一类型生产一个输出器org.apache.tapestry5.MarkupWriter,组件若有需要输出HTML片段,则会输出到这个输出器中;其后,org.apache.tapestry5.internal.services.PageMarkupRenderer这一渲染器将会开始调度组件开始执行其生命周期,在PageMarkupRenderer中进行对JS文件的动态的压缩以及整合;最后,MarkupWriter生成的中间结构会实际的输出到返回给客户端的输出流中。
采用本发明所述方法,与现有技术相比,取得修改JS文件,不用压缩发布,并且JS脚本修改的效性加强的进步,达到了动态的压缩,整合JS的效果,最终提高了用户体验,给程序开发带来了方便。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (5)
1.一种实现Javascript文件动态压缩与合并方法,其特征在于,包括:
客户端用户发出页面请求;
服务器根据客户端发出的请求进行分析,对于Javascript请求,转入Javascript过滤器中;
读取Javascript文件,动态地对Javascript文件进行压缩和合并;
tapestry框架对页面进行整合,展示到客户端。
2.如权利要求1所述的方法,其特征在于,所述服务器根据客户端发出的请求进行分析,对于非页面Javascript的请求转入非Javascript过滤器进行处理。
3.如权利要求1所述的方法,其特征在于,所述服务器根据客户端发出的请求进行分析,由TapestryFilter将请求转接到Tapestry框架。
4.如权利要求3所述的方法,其特征在于,当请求实际到达渲染处理器时,该处理器向目标页面发出一个activate事件,为页面提供org.apache.tapestry5.internal.services.PageResponseRenderer服务。
5.如权利要求1所述的方法,其特征在于,所述读取Javascript文件,动态地对Javascript文件进行压缩和合并,具体包括:Tapestry采用org.apache.tapestry5.services.MarkupRenderer服务获取页面中Javascript的文件,然后通过压缩的方法对Javascript文件进行动态压缩,Tapestry对压缩后的Javascript文件进行整合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103721376A CN102521266A (zh) | 2011-11-18 | 2011-11-18 | 一种实现Javascript文件动态压缩与合并方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103721376A CN102521266A (zh) | 2011-11-18 | 2011-11-18 | 一种实现Javascript文件动态压缩与合并方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102521266A true CN102521266A (zh) | 2012-06-27 |
Family
ID=46292188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103721376A Pending CN102521266A (zh) | 2011-11-18 | 2011-11-18 | 一种实现Javascript文件动态压缩与合并方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521266A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020155A (zh) * | 2012-11-23 | 2013-04-03 | 中国电信股份有限公司云计算分公司 | 一种Web前端资源请求处理方法及装置 |
CN104408178A (zh) * | 2014-12-12 | 2015-03-11 | 用友软件股份有限公司 | Web控件加载装置和方法 |
CN104462605A (zh) * | 2014-12-31 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种数据库持久层框架配置、修改方法及*** |
CN104965742A (zh) * | 2015-06-30 | 2015-10-07 | 努比亚技术有限公司 | 一种处理前端任务的自动化脚本及装置 |
CN104978341A (zh) * | 2014-04-08 | 2015-10-14 | 北京奇虎科技有限公司 | 一种文件处理方法、设备和网络*** |
CN105069132A (zh) * | 2015-08-17 | 2015-11-18 | 中国海洋大学 | 一种基于静态外壳的网页实现方法 |
CN105373589A (zh) * | 2015-10-13 | 2016-03-02 | 浪潮软件集团有限公司 | 移动设备加载网络图片资源的优化方法 |
CN106202244A (zh) * | 2016-06-28 | 2016-12-07 | 深圳中兴网信科技有限公司 | 网页消息返回方法和网页消息返回*** |
CN115167799A (zh) * | 2022-09-06 | 2022-10-11 | 深圳市信润富联数字科技有限公司 | 可视化大屏的快速展示方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178716A (zh) * | 2007-11-19 | 2008-05-14 | 优视动景(北京)技术服务有限公司 | 微浏览器处理JavaScript的方法及微浏览器 |
CN101217557A (zh) * | 2007-01-03 | 2008-07-09 | 三星电子株式会社 | web服务器及其web服务方法 |
CN102081633A (zh) * | 2009-11-27 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种JavaScript文件的管理方法、装置和*** |
KR101066610B1 (ko) * | 2009-12-23 | 2011-09-21 | 주식회사 휴먼앤소프트웨어 | Xml과 json 데이터의 압축 및 분할 전송시스템 |
-
2011
- 2011-11-18 CN CN2011103721376A patent/CN102521266A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217557A (zh) * | 2007-01-03 | 2008-07-09 | 三星电子株式会社 | web服务器及其web服务方法 |
CN101178716A (zh) * | 2007-11-19 | 2008-05-14 | 优视动景(北京)技术服务有限公司 | 微浏览器处理JavaScript的方法及微浏览器 |
CN102081633A (zh) * | 2009-11-27 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种JavaScript文件的管理方法、装置和*** |
KR101066610B1 (ko) * | 2009-12-23 | 2011-09-21 | 주식회사 휴먼앤소프트웨어 | Xml과 json 데이터의 압축 및 분할 전송시스템 |
Non-Patent Citations (1)
Title |
---|
MINDHAWK: "《解读Tapestry5.1》", 16 December 2009, article "解读Tapestry5.1" * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020155A (zh) * | 2012-11-23 | 2013-04-03 | 中国电信股份有限公司云计算分公司 | 一种Web前端资源请求处理方法及装置 |
CN104978341A (zh) * | 2014-04-08 | 2015-10-14 | 北京奇虎科技有限公司 | 一种文件处理方法、设备和网络*** |
CN104408178A (zh) * | 2014-12-12 | 2015-03-11 | 用友软件股份有限公司 | Web控件加载装置和方法 |
CN104408178B (zh) * | 2014-12-12 | 2018-10-16 | 用友网络科技股份有限公司 | Web控件加载装置和方法 |
CN104462605A (zh) * | 2014-12-31 | 2015-03-25 | 迈普通信技术股份有限公司 | 一种数据库持久层框架配置、修改方法及*** |
CN104965742A (zh) * | 2015-06-30 | 2015-10-07 | 努比亚技术有限公司 | 一种处理前端任务的自动化脚本及装置 |
CN104965742B (zh) * | 2015-06-30 | 2019-07-05 | 努比亚技术有限公司 | 一种处理前端任务的自动化脚本及装置 |
CN105069132A (zh) * | 2015-08-17 | 2015-11-18 | 中国海洋大学 | 一种基于静态外壳的网页实现方法 |
CN105373589A (zh) * | 2015-10-13 | 2016-03-02 | 浪潮软件集团有限公司 | 移动设备加载网络图片资源的优化方法 |
CN106202244A (zh) * | 2016-06-28 | 2016-12-07 | 深圳中兴网信科技有限公司 | 网页消息返回方法和网页消息返回*** |
CN115167799A (zh) * | 2022-09-06 | 2022-10-11 | 深圳市信润富联数字科技有限公司 | 可视化大屏的快速展示方法、装置、设备及存储介质 |
CN115167799B (zh) * | 2022-09-06 | 2023-01-06 | 深圳市信润富联数字科技有限公司 | 可视化大屏的快速展示方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521266A (zh) | 一种实现Javascript文件动态压缩与合并方法 | |
CN101178716B (zh) | 微浏览器处理JavaScript信息的方法及其装置 | |
CN102184231A (zh) | 获取页面资源的方法及装置 | |
CN100462964C (zh) | 一种网页数据的更新显示方法 | |
CN102761603B (zh) | VDI环境下的网页flash视频重定向的方法 | |
TWI670611B (zh) | 網頁文件發送方法、網頁渲染方法及裝置、網頁渲染系統 | |
CN102200976B (zh) | 桌面应用转换成网络应用的定制***和方法 | |
CN101473675B (zh) | 移动设备用户体验的虚拟化 | |
US9594477B1 (en) | Using deep links to restore interactive state of a web page | |
CN102185923A (zh) | 一种移动通讯设备终端网页浏览方法 | |
CN102662766B (zh) | 基于Web Element机制的微博与社交网络信息同步***与方法 | |
CN103531218B (zh) | 一种在线多媒体文件编辑方法及*** | |
CN102111437A (zh) | 一种基于soap扩展的web服务传输压缩方法 | |
CN101794298A (zh) | 一种实现页面适配的方法、页面适配***及通信*** | |
KR100967337B1 (ko) | 프록시 서버를 이용한 이동통신 단말기의 웹 브라우저 시스템 | |
CN102687116A (zh) | 用于异步请求的管理信道 | |
CN101957756A (zh) | 一种智能移动终端程序快速生成***及方法 | |
CN103458065A (zh) | 一种HTML5标准下基于Webkit内核的视频地址提取方法 | |
KR100749845B1 (ko) | 모바일 액티브 페이지 기능을 제공하는 이동 단말 및 그의무선 인터넷 서비스 제공 방법 | |
CN109145236A (zh) | 页面文件处理方法、装置及*** | |
CN102624910B (zh) | 处理用户选取的网页内容的方法、装置及*** | |
CN105205151B (zh) | 在移动端节约浏览器页面流量的方法及*** | |
CN102929489B (zh) | 客户端浏览器实现方法及客户端浏览器 | |
CN104572099A (zh) | 基于组件和中间件的低耦合框架数据处理方法及*** | |
CN103313091A (zh) | 倍速播放方法、装置及*** |
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: 20120627 |