首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么用GZip压缩JS和CSS会丢失数据?

问为什么用GZip压缩JS和CSS会丢失数据?
EN

Stack Overflow用户
提问于 2011-11-18 11:40:54
回答 2查看 336关注 0票数 0

我有一个关于GZip的奇怪的问题,我希望你能帮助我。

代码语言:javascript
复制
using (MemoryStream memoryStream = new MemoryStream(10240))
{
   //isCompressed will be true if the browser accepts gzip
   using (Stream writer = isCompressed ?
                    (Stream)(new GZipStream(memoryStream, CompressionMode.Compress)) :
                    memoryStream)
   {
      StringBuilder sb = new StringBuilder();

      //filenames is collection of multi js files need to be minify
      foreach (string fileName in fileNames)
      {
         sb.Append(File.ReadAllText(context.Server.MapPath(fileName)));
      }

      //minifier is an instance of Microsoft.Ajax.Utilities.Minifier
      string minifiedString = minifier.MinifyJavaScript(sb.ToString());

      byte[] bts = Encoding.UTF8.GetBytes(minifiedString);
      writer.Write(bts, 0, bts.Length);
   }
}

bts的长度其实已经超过6000了,但是在执行writer.Write(bts, 0, bts.length)的时候,写入者只能写2334个字符,我查了一下里面的信息,上面写着,操作不支持,我很困惑,也不知道为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-18 13:10:51

如果我理解这个场景,Vinay关于6k正在被压缩的说法是正确的。但是,为什么要使用自定义代码来压缩内容呢?为什么不直接在IIS中启用静态和动态压缩,让IIS来完成这项工作呢?此外,使用像http://RequestReduce.com这样的库,它可以动态地自动组合和缩小你的css和js,不需要代码,也可能不需要配置,还可以精灵你的图片。

票数 1
EN

Stack Overflow用户

发布于 2011-11-18 12:35:09

但是你为什么会感到困惑呢?这里的想法是不压缩脚本-因此gzip流将占用很少的字节并将它们压缩-因此结果数据将比输入数据小。所以你的6000字节被压缩成了2334字节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8177484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档