jsp生成的静态页面空格太多,页面体积变得很大,浪费流量

下面是我的一份jsp代码的片段(黑色下划线代表空格,后面提到):

<s:iterator value="categorys" var="category">
_____<s:iterator value="links" var="link">
_________<s:if test="#category.id==#link.category_id">
            <li class="link">
            <s:a value="%{#link.url}"><s:property value="#link.name"/></s:a>
            </li>
        </s:if>
_____</s:iterator>
</s:iterator>

以上代码要完成的什么样的功能并不重要,重点是它的结构:循环内有判断,并且为了代码的可读性,每行代码前面有缩进。

这样的代码有个特点是:并不是每一次循环,内层的<s:if></s:if>代码都能的到执行(里面的输出内容不会在生成的页面上出现)。其实这也不是问题。真正的问题是,那些在<s:if></s:if>外部,但是在<s:iterator></s:iterator>内部的空格(代码中以黑色下划线表示),却在每次循环都打印了到页面上,最后页面上会有很多空格,像下面这样:

<li class="link">
        <a href="http://www.codeforge.com/article/54868" target="view_window">&#32534;&#35793;&#21407;&#29702;&#36164;&#26009;</a>
</li>

                       	
                  		

<li class="link">
        <a href="http://best-java-source.whyandhow.org/" target="view_window">Java&#24320;&#28304;&#39033;&#30446;</a>
</li>

 我在浏览器上将一个jsp生成的静态页面下载到磁盘上,它占用的空间是12KB。当我用dreamweaver把页面中那些无意义的空格全部删除后,页面文件变得只有4KB。修改前后的体积比是3:1。其实可以想象,这个比值在一些时候还可以更大,甚至大的离谱。我想页面有这么大的代码冗余是很浪费流量的一件事。

我现在找到的解决办法并不完美。应为我把代码改成下面这个样子了:

<s:iterator value="categorys" var="category">
<s:iterator value="links" var="link">
<s:if test="#category.id==#link.category_id">
<li class="link">
<span>
<s:a value="%{#link.url}" target="view_window"><s:property value="#link.name"/></s:a>
</span>
</li>
</s:if>
</s:iterator>

 这样改了之后,生成的静态页面的体积终于正常了。但是代码变得很难读。所以我要准备两套代码:一套用来编辑,一套是用来部署到服务器的的。

我现在再想别的办法:用别的结构的代码实现我上面那些代码的等效功能。

转载于:https://my.oschina.net/cnlw/blog/60232

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值