CN102521266A - 一种实现Javascript文件动态压缩与合并方法 - Google Patents

一种实现Javascript文件动态压缩与合并方法 Download PDF

Info

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
Application number
CN2011103721376A
Other languages
English (en)
Inventor
祝明远
李斌
潘俊
谢向荣
肖飞秋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE ICT Technologies Co Ltd
Original Assignee
ZTE ICT Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE ICT Technologies Co Ltd filed Critical ZTE ICT Technologies Co Ltd
Priority to CN2011103721376A priority Critical patent/CN102521266A/zh
Publication of CN102521266A publication Critical patent/CN102521266A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种实现Javascript文件动态压缩与合并方法,包括:客户端用户发出页面请求;服务器根据客户端发出的请求进行分析,对于JaVascript请求,转入Javascript过滤器中;读取Javascript文件,动态地对JaVascript文件进行压缩和合并;tapestry框架对页面进行整合,展示到客户端。通过本发明提供一种基于Tapestry5实现页面JS文件动态压缩与合并方法,可以很容易的实现修改JS脚本后不用重新压缩,在服务器加载页面时动态的对JS进行压缩,支持水平扩展,时效性强,易用性好。

Description

一种实现Javascript文件动态压缩与合并方法
技术领域
本发明涉及互联网领域,特别是涉及一种在互联网应用中,基于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文件进行整合。
CN2011103721376A 2011-11-18 2011-11-18 一种实现Javascript文件动态压缩与合并方法 Pending CN102521266A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 데이터의 압축 및 분할 전송시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
MINDHAWK: "《解读Tapestry5.1》", 16 December 2009, article "解读Tapestry5.1" *

Cited By (12)

* Cited by examiner, † Cited by third party
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