用戶登錄  |  用戶注冊
首 頁源碼下載網絡學院最新源碼源碼排行屏蔽廣告
當前位置:新興網絡 > 網絡學院 > .Net技術 > Asp.Net

VB.net實現Asp.net頁面簡單壓縮(gzip,deflate)

減小字體 增大字體 作者:佚名  來源:本站整理  發布時間:2010-07-22 11:02:34

編譯后,并在web.config文件中添加httpmodule模塊配置內容就OK了。

當然也可能將以上代碼作出一些修改后直接添加到您的頁面基類里使用

VBScript code復制代碼
Public Class CompressModule
    Implements IHttpModule
    Public Sub Dispose() Implements System.Web.IHttpModule.Dispose

    End Sub

    Public Sub Init(ByVal context As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init
        AddHandler context.PreRequestHandlerExecute, AddressOf CompressModule_PreRequestHandlerExecute
    End Sub

    Protected Sub CompressModule_PreRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs)
        Dim app As HttpApplication = CType(sender, HttpApplication)
        '檢測是否為ASP.NET頁面,是否MS-AJAX應用
        If TypeOf app.Context.CurrentHandler Is UI.Page AndAlso app.Request.ServerVariables("HTTP_X_MICROSOFTAJAX") Is Nothing Then
            Dim type As CompressType = Me.GetCompressType(app)
            If type = CompressType.GZip Then
                app.Response.Filter = New GZipStream(app.Response.Filter, CompressionMode.Compress)
                app.Response.AppendHeader("Content-Encoding", type.ToString().ToLower())
            ElseIf type = CompressType.Deflate Then
                app.Response.Filter = New DeflateStream(app.Response.Filter, CompressionMode.Compress)
                app.Response.AppendHeader("Content-Encoding", type.ToString().ToLower())
            End If
        End If
    End Sub

    ''' <summary>
    ''' 獲取客戶端支持的壓縮類型
    ''' </summary>
    ''' <param name="context">The context.</param>
    ''' <returns></returns>
    Protected Function GetCompressType(ByVal context As HttpApplication) As CompressType
        Dim accept As String = context.Request.Headers("Accept-Encoding")
        If String.IsNullOrEmpty(accept) Then
            Return CompressType.None
        End If
        accept = accept.ToUpperInvariant()
        If accept.Contains("GZIP") Then
            Return CompressType.GZip
        End If
        If accept.Contains("DEFLATE") Then
            Return CompressType.Deflate
        End If
        Return CompressType.None
    End Function

    ''' <summary>
    ''' 壓縮類型枚舉
    ''' </summary>
    Protected Enum CompressType
        ''' <summary>
        ''' GZIP壓縮
        ''' </summary>
        GZip
        ''' <summary>
        ''' Deflate壓縮
        ''' </summary>
        Deflate
        ''' <summary>
        ''' 不支持壓縮
        ''' </summary>
        None
    End Enum
End Class

Tags:壓縮 gzip

作者:佚名
  • 好的評價 如果您覺得此文章好,就請您
      100%(1)
  • 差的評價 如果您覺得此文章差,就請您
      0%(0)

網絡學院評論評論內容只代表網友觀點,與本站立場無關!

   評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論
皮皮麻将官网下载 35选7除3走势图 (★^O^★)MG怪物赛车_官方版 (★^O^★)MG沉默的武士玩法介绍 浙江快乐彩12选5遗漏 (★^O^★)MG钻石帝国_电子游戏 彩票31选7规则 体彩浙江20选5开奖走势图 亿客隆彩票app官方下载 (*^▽^*)MG百搭圣甲虫爆分打法 国庆期间体育彩票停售吗 15选5走势图100期开奖 (★^O^★)MG蛇和梯子爆分打法 (*^▽^*)MG幸运月APP下载 (★^O^★)MG武则天游戏规则 122期单双中特 北京福利彩票停售通知2020