asp.net输出重写压缩页面文件实例

例子

 代码如下 复制代码

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.htmlControls;
using System.Text.RegularExpressions;
using System.IO;
/// <summary>
/// PageBase 页面基类
/// </summary>
public class PageBase : System.Web.UI.Page
{
    protected override void Render(htmlTextWriter writer)
    {
        StringWriter sw = new StringWriter();
        HtmlTextWriter htmlWriter = new htmlTextWriter(sw);
        base.Render(htmlWriter);
        string html = sw.ToString();
        html = Regex.Replace(html, “[f v]“, “”);
        html = Regex.Replace(html, ” {2,}”, ” “);
        html = Regex.Replace(html, “>[ ]{1}”, “>”);
        writer.Write(html);
    }
}

补充几款.net压缩模块

一、WebResourceCompression压缩模块 

    这个压缩模块是专门用来实时压缩ASP.NET2.0页面引用的所有*.axd资源,一般aspx页面使用了如anthem.net的ajax框架或asp.net验证控件都会产生axd文件引用,这个文件实际就是一个js脚本,启用这个压缩模块后,所有的axd资源都会被GZIP压缩后再传送给客户端,此模块特别适用于aspx页面应用了ajax框架或需引用体积庞大的axd资源文件的项目!

使用:解压后将WebResourceCompression.dll放到网站项目的BIN目录,并且在Web.config <httpModules> 配置节中加入以下语句:
复制代码 代码如下:
<add name="WebResourceCompression" type="WebResourceCompression.WebResourceCompressionModule"/>

优点:使用简单
缺点:仅支持ASP.NET2.0或以上版本,不能压缩除axd外的其它资源!

二、PageCompression压缩模块 

    与之前的模块不同,这个模块是专门用来压缩aspx页面的,启用这个压缩模块之后,aspx页面将会被实时压缩,一般100K的页面能被压缩到25K左右,此模块适用于只需要对页面进行压缩的项目!

使用:解压后将Compression.PageCompressionModule.dll放到网站项目的BIN目录,并且在Web.config <httpModules> 配置节中加入以下语句:
复制代码 代码如下:
<add name="PageCompressionModule" type="Compression.PageCompressionModule,Compression.PageCompressionModule"/>

优点:使用简单
缺点:仅支持ASP.NET2.0或以上版本,不能压缩除aspx页面外的其它资源,而且启用压缩后,页面引用的axd资源会无效(BUG)!

三、HttpCompress6.0压缩模块 

    这是一个支持asp.net1.0/1.1/2.0(2.0以下版本不支持gzip压缩,仅支持deflate压缩),可以压缩aspx页面请求的所有类型(MimeTypes)的资源,包括图片、js脚本、axd、aspx页面、css文件等,并且能在web.config详细自定义要压缩那种类型的资源及不压缩那种类型的资源、也可定义要压缩指定的页面或不压缩指定的页面,另外还有压缩比率设定(high|normal|low)等等强大的自定义功能,不过此控件的最严重问题是在asp.net2.0下启用压缩会导致axd文件无效,这样如果页面应用了ajax框架就会导致ajax功能失效。

使用:略(与下面推荐的CompressionModule压缩模块使用方法雷同)
优点:开放源代码,强大的自定义功能,支持asp.net1.0/1.1/2.0版本,能压缩多种资源!
缺点:使用复杂,asp.net2.0下启用压缩会导致axd文件无效!

时间: 2024-08-31 03:50:51

asp.net输出重写压缩页面文件实例的相关文章

asp.net输出重写压缩页面文件实例代码

 这篇文章主要介绍了asp.net输出重写压缩页面文件实例代码,需要的朋友可以参考下 例子    代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.Web

asp.net输出重写压缩页面文件实例代码_实用技巧

例子 复制代码 代码如下: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.htmlControls;using Sys

.net输出重写压缩页面文件的小例子

这篇文章介绍了.net输出重写压缩页面文件的小例子,有需要的朋友可以参考一下   不知你是否留意过,有一些网站的html代码都是混在一起,没有任何空格和换行等多余字符.它的好处不用多说--界面大小绝对优化.或许您在想,他 们这样做大大降低了可读性.的确,我们看是很乱,只能借用第三方软件重新布局代码.但是,我想他们开发时使用的源码不可能是混一团,前不久发现一个页面基 类,大概可以解释这个问题,不多说,看源码: 复制代码 代码如下: using System; using System.Data;

.net输出重写压缩页面文件的小例子_实用技巧

不知你是否留意过,有一些网站的html代码都是混在一起,没有任何空格和换行等多余字符.它的好处不用多说--界面大小绝对优化.或许您在想,他们这样做大大降低了可读性.的确,我们看是很乱,只能借用第三方软件重新布局代码.但是,我想他们开发时使用的源码不可能是混一团,前不久发现一个页面基类,大概可以解释这个问题,不多说,看源码: 复制代码 代码如下: using System;using System.Data;using System.Configuration;using System.Web;u

asp.net类序列化生成xml文件实例详解_实用技巧

本文实例讲述了asp.net类序列化生成xml文件的方法.分享给大家供大家参考,具体如下: 根据设计的需求需要开发多个商品的API 原XML文件如下: <urlset> <url> <loc>http://www.xxxxx.com/todaydetials.aspx?id=143</loc> <data> <display> <website>爱购114</website> <siteurl>ht

ASP.NET 输出缓存移除的实例代码

  ASP.NET输出缓存的使用网上已经有很多例子了,这里主要介绍下如何在后台管理中移除缓存. 1.基于页面缓存 对于页面:Default.aspx 如果页面顶部添加: <%@ OutputCache Duration="60" VaryByParam="none" %> 在后台管理中要移除很简单: System.Web.HttpResponse.RemoveOutputCacheItem(Page.ResolveUrl("Default.as

ASP.NET下向SQLServer2008导入文件实例操作方法

ASP.NET向SQL Server导入文件主要用到FileUpload控件的FileBytes属性.该属性从FileUpload控件所指定的文件返回一个字节数组 . 1.数据库准备 为了方便大家能够理解,这里我们只设计两个字段,一个是文件类型字段,字段名为FileType,另一个是存放文件内容字段,字段名为FileContent.创建数据库 ,数据库名为VarFile,语句如下: CREATE DATABASE VARFILE GO 创建表,表名为FileInOut,语句如下: USE VAR

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

asp.net url重写后页面回传问题_实用技巧

具体办法如下:可以通过自定义页面基类,重写默认的HtmlTextWriter方法,重写属性输出WriteAttribute(string name, string value, bool encode)方法,当输出action时,将action属性的值强制转换为当前虚URL(HttpContext.Current.Request.RawUrl,上面的~/showVisasAll_(\w+)\.aspx) 最后就是让所有的页面都调用这个基类,修改一下Web.config就好了 <!-- Openl