asp.Net出力書き換え圧縮ページファイルインスタンスコード

2898 ワード

 
  
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;
///
/// PageBase
///

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構成セクションには、次の文が追加されます.コードは次のとおりです.
 
  


利点:使用が簡単
欠点:ASPのみサポートNET2.0以上のバージョンでは、axd以外のリソースを圧縮できません.
二、PageCompression圧縮モジュール
従来のモジュールとは異なり、このモジュールはaspxページを圧縮するためのもので、この圧縮モジュールを有効にすると、aspxページはリアルタイムで圧縮され、一般的に100 Kのページは25 K程度に圧縮され、このモジュールはページを圧縮するだけの項目に適しています!
使用:解凍後Compression.PageCompressionModule.dllはウェブサイトプロジェクトのBINディレクトリに配置され、Web.config構成セクションには、次の文が追加されます.コードは次のとおりです.
 
  


利点:使用が簡単
欠点:ASPのみサポートNET2.0以上のバージョンでは、aspxページ以外のリソースを圧縮できません.また、圧縮を有効にすると、ページ参照のaxdリソースが無効になります(BUG).
三、HttpCompress 6.0圧縮モジュール
これはaspをサポートしています.net1.0/1.1/2.0(2.0以下のバージョンではgzip圧縮はサポートする、deflate圧縮のみがサポートされている)は、画像、jsスクリプト、axd、aspxページ、cssファイルなど、aspxページ要求のすべてのタイプのリソースを圧縮することができ、webで使用することができる.configは、圧縮するタイプのリソースや圧縮しないタイプのリソースを詳細にカスタマイズし、指定するページを圧縮するか、指定したページを圧縮しないかを定義することができます.また、圧縮比率設定(high|normal|low)などの強力なカスタマイズ機能もありますが、このコントロールの最も深刻な問題はaspです.net2.0で圧縮を有効にするとaxdファイルが無効になり、ajaxフレームワークがページに適用されるとajax機能が無効になります.
使用:略(以下で推奨するCompressionModule圧縮モジュールの使用方法と同様)の利点:オープンソース、強力なカスタム機能、aspをサポートする.net1.0/1.1/2.0バージョンで、複数のリソースを圧縮できます!欠点:使用が複雑で、asp.net2.0で圧縮を有効にするとaxdファイルが無効になります!