随笔 - 3461, 文章 - 0, 评论 - 739, 阅读 - 1200万
  管理

Html压缩工具(Uedsky HtmlCompressor)

Posted on   lzhdim  阅读(1248)  评论(2编辑  收藏  举报

Html压缩工具(Uedsky HtmlCompressor) -- uedsky.com

Homepage: http://www.uedsky.com
Date: 2010-05-10
下载试用:Uedsky HtmlCompressor(应该至少需要 .net 2.0才能运行)
程序版本:1.0.0.0

1.前言

写这个小工具是因为我的首页要用,看到很多地方(baidu,google等首页)提到Html压缩,但是好像没有见过哪里有工具可以下载,所以就想到自己写,一般情况下情况下只用压缩首页,或者生成静态页后可以压缩,就这个小工具来说,我写正则也没有考虑到效率(css部分参考yui compressor只顾到了程序可读性)(认为Html不需要压缩的飘过)。

2.效率问题

个人觉得Html文件还是有必要压缩的,使用这个小工具Cnblogs的首页可以压缩18%,我的首页也可以压缩15%;(本页面也压缩了,可以直接查看源文件)

3.特点:无损压缩

由于 pre,textarea中的换行等内容会直接显示,所以不对其压缩,script标签由于js压缩比较复杂这里就不处理,如果内联javascript文件比较多,请先使用yui compressor压缩后放到页面里,压缩style标签里的css(核心参照yui compressor的源码),程序执行步骤如下:

  • 正则(?is)<!--(?!\[if).*?-->匹配注释,将所有html注释去掉,这里排除右边为[if的,防止 将ie条件注释压缩掉
  • 然后(?is)<(pre|script|style|textarea)[^>]*>.*?,将这些标签里内容提出来保存,防止替换时出错
  • 将html标签之间的空白去掉:(?<=<[^>]+>)\s+(?=<[^>]+>)
  • 去掉所有的换行:[\r\n]+
  • 然后执行一个可选项:是否将多个空白换成一个,在Html中多个空白会解析成一个,所以默认为true
  • 然后恢复保存的pre等标签内容
  • 执行css压缩(步骤比较多就不列出来了,可以看yui compressor的源码)(这个也是可选项,如果没有内联的css或者是已经压缩过可以不选)

4.说明

1.程序会记住你上次使用的配置

2.如果压缩的文件名以-source结尾,压缩后去掉,index-source.html==>index.html

最后,欢迎大家使用,有问题可以给我留言

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
Copyright (C) 2000-2025 Lzhdim Software All Rights Reserved
点击右上角即可分享
微信分享提示