2019年08月19日(星期一)  农历:己亥年七月十九

作者:三年。分类: JAVA

1、说明在使用extjs 的时候,运行起来比较卡,特别是运行数据和js过多的时候,就会出现卡死的情况,或者等待时间比较长。

在解决这个有很多优化方法,今天来说其中一种,那就是在Ant脚本打包的时候,把js中空格、注释去掉、以及合并,合并今天不说了,还未实现这个,在研究中

2、首先,需要准备二个 .jar 文件,分别是 YUIAnt.jar 和 yuicompressor-2.4.x.jar .

3、build.xml文件如下

01.<!-- JS压缩过程中的临时目录  -->

02.        <property name="jsDir" value="${basedir}/release/web/js" />

03.        <!-- CSS压缩过程中的临时目录  -->

04.        <property name="cssDir" value="${basedir}/release/web/css" />

05.        <!-- ext3 css压缩过程中的临时目录  -->

06.        <property name="cssExtDir" value="${basedir}/release/web/ext3" />

07.        <!-- ext3 js压缩过程中的临时目录  -->

08.        <property name="extUxJsDir" value="${basedir}/release/web/ext3/ux" />

09.

10.        <!-- JS源文件  -->

11.        <property name="jsSourceDir" value="${webapp}/js" />

12.        <!-- CSS源文件  -->

13.        <property name="cssSourceDir" value="${webapp}/css" />

14.        <!-- Ext CSS源文件  -->

15.        <property name="cssExtSourceDir" value="${webapp}/ext3" />

16.        <!-- Ext JS源文件  -->

17.        <property name="extUxJsSourceDir" value="${webapp}/ext3/ux" />

18.        <!-- yui 依赖包 -->

19.        <path id="yuiClasspath">

20.            <fileset dir="${basedir}">

21.                <include name="metadata/tools/yui/yuicompressor-2.4.2.jar" />

22.                <include name="metadata/tools/yui/YUIAnt-zh_CN.jar" />

23.            </fileset>

24.        </path>

01.<!-- 开始压缩JS -->

02.    <target name="copy-web-depress-js" depends="init">

03.        <delete dir="${basedir}/release/web" />

04.        <copy todir="${basedir}/release/web">

05.            <fileset dir="${webapp}"/>

06.        </copy>

07.        <taskdef name="uxJsCompress"  classname="com.yahoo.platform.yui.compressor.YUICompressTask">

08.            <classpath>

09.                <path refid="yuiClasspath" />

10.            </classpath>

11.        </taskdef>

12.        <uxJsCompress linebreak="9000000" warn="false"  charset="utf-8" encoding="utf-8" munge="yes" preserveallsemicolons="true" outputfolder="${extUxJsDir}">

13.            <fileset dir="${extUxJsSourceDir}">

14.                <include name="**/*.js"  />

15.            </fileset>

16.        </uxJsCompress>

17.

18.        <taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">

19.            <classpath>

20.                <path refid="yuiClasspath" />

21.            </classpath>

22.        </taskdef>

23.        <yuicompress linebreak="9000000" warn="false" charset="utf-8"  encoding="utf-8" munge="yes" preserveallsemicolons="true" outputfolder="${jsDir}">

24.            <fileset dir="${jsSourceDir}">

25.                <include name="**/*.js" />

26.            </fileset>

27.        </yuicompress>

28.

29.        <taskdef name="cssYuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">

30.            <classpath>

31.                <path refid="yuiClasspath" />

32.            </classpath>

33.        </taskdef>

34.

35.        <cssYuicompress linebreak="9000000" warn="false" charset="utf-8" encoding="utf-8" munge="yes" preserveallsemicolons="true" outputfolder="${cssDir}">

36.            <fileset dir="${cssSourceDir}">

37.                <include name="**/*.css" />

38.            </fileset>

39.        </cssYuicompress>

40.

41.        <taskdef name="cssExtYuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">

42.            <classpath>

43.                <path refid="yuiClasspath" />

44.            </classpath>

45.        </taskdef>

46.

47.        <cssExtYuicompress linebreak="9000000" warn="false" charset="utf-8" encoding="utf-8" munge="yes" preserveallsemicolons="true" outputfolder="${cssExtDir}">

48.            <fileset dir="${cssExtSourceDir}">

49.                <include name="**/*.css" />

50.            </fileset>

51.        </cssExtYuicompress>

52.    </target>

53.    <!-- 结束压缩JS -->

4、在这里说一点,在使用js压缩的时候YUIAnt.jar 是不支持utf-8字符集的。即

01.encoding="utf-8

5、个人感受,在弄了很小半天,吧这个问题搞定了,自以为可以提高点js加载速度了,结果还是有点小慢,没有jquery那么的快,估计要用 gzjs压缩才会变快点,现在我分析是的在IE下运行速度比较慢点,在firefox下比较快,看来还是每个模块加载的js有点多。

优化速度对比:

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/1507 人参与

发表评论:



手Q扫描加入Java初学者群