相关疑难解决方法(0)

asp.net mvc压缩流并删除空格

所以我通过动作过滤器压缩输出流:

var response = filterContext.HttpContext.Response;
response.Filter = new DeflateStream(response.Filter), CompressionMode.Compress);
Run Code Online (Sandbox Code Playgroud)

哪个效果很好.现在,我还想删除多余的空白.我找到了Mads Kristensen的http模块http://madskristensen.net/post/A-whitespace-removal-HTTP-module-for-ASPNET-20.aspx.

public class WhitespaceFilter : Stream {

    // using Mads Kristensen httpModule
    // http://madskristensen.net/post/A-whitespace-removal-HTTP-module-for-ASPNET-20.aspx

    private Stream os;
    private static Regex reg = new Regex(@"^\s+", RegexOptions.Multiline | RegexOptions.Compiled); 

    public WhitespaceFilter(Stream os) {
        this.os = os;
    }

    //methods that need to be overridden from stream
    public override bool CanRead {
        get { return true; }
    }

    public override bool CanSeek {
        get { return true; }
    }

    public override …
Run Code Online (Sandbox Code Playgroud)

compression asp.net-mvc httpcontext

9
推荐指数
1
解决办法
4302
查看次数

从整个Html中移除空格,但在pre中使用正则表达式

在ASP.NET MVC 3上,我创建了一个动作过滤器,用于从整个html中删除空白区域.它的工作方式与我预期的大部分时间相同,但现在我需要更改RegEx以便不触及pre元素内部.

我从令人敬畏的Mads Kristensen的博客中获得了RegEx逻辑,我不确定如何为此目的修改它.

这是逻辑:

public override void Write(byte[] buffer, int offset, int count) {

    string HTML = Encoding.UTF8.GetString(buffer, offset, count);

    Regex reg = new Regex(@"(?<=[^])\t{2,}|(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,11}(?=[<])|(?=[\n])\s{2,}");
    HTML = reg.Replace(HTML, string.Empty);

    buffer = System.Text.Encoding.UTF8.GetBytes(HTML);
    this.Base.Write(buffer, 0, buffer.Length);
}
Run Code Online (Sandbox Code Playgroud)

过滤器的整个代码:

https://github.com/tugberkugurlu/MvcBloggy/blob/master/src/MvcBloggy.Web/Application/ActionFilters/RemoveWhitespacesAttribute.cs

任何的想法?

编辑:

大注:

我的意图完全没有加快响应时间.事实上,这可能会减慢速度.我GZiped页面,这个缩小使我每页获得大约4 - 5 kb,这没什么.

javascript c# regex asp.net asp.net-mvc

2
推荐指数
1
解决办法
3055
查看次数

标签 统计

asp.net-mvc ×2

asp.net ×1

c# ×1

compression ×1

httpcontext ×1

javascript ×1

regex ×1