zoukankan      html  css  js  c++  java
  • Web基础之页面压缩 koma

    此文灰常基础,有一定经验的程序员可以略过

    什么是页面压缩

    当页面过大时,造成网络传输缓慢时, 可以使用gzip或deflate 对页面进行压缩, 其实gzip或deflate是服务器与客户端浏览器共同支持的协议, 当客户端请求服务器时, 服务器判断客户端是否支持压缩,当支持并且服务器配置了压缩时, 服务器会传送压缩好的数据给浏览器, 浏览器再将数据解析呈现.

    在IIS7中,默认是开启了页面压缩,如图

      

    什么是静态压缩?

    静态压缩是服务器将数据压缩后,存储都临时目录(见上图), 当有请求过来时, 服务器会判断是否有压缩好的数据,如果没有,服务器会进行页面压缩,并存储,同时将压缩好的数据返回,当再次有相同的请求时, 服务器会从临时目录中返回压缩好的数据

    什么是动态内容压缩?

    动态内容压缩, 是指当客户端请求某个页面时,由于页面数据可能会变动, 例如(*.aspx), 服务器会先将数据压缩并放入内存,在将数据返回客户端;当再次有相同请求时, 服务器依然会重复之前动作,对页面进行压缩,在想数据返回

    如何手动实现?

    其实很简单,我将核心代码贴上来, 大家一看便知 ,代码下载

    GZipStream gzip = new GZipStream(filterContext.HttpContext.Response.Filter, CompressionMode.Compress);
    filterContext.HttpContext.Response.AppendHeader("Content-Encoding", "GZIP");
    filterContext.HttpContext.Response.Filter = gzip;

    主要是GZipStream类的功劳, 需要注意的是Response.AppendHeader("Content-Encoding", "GZIP") 这里的GZIP 必须是大写! 在看看我们页面返回的数据, 

    没错,就这莫简单,  但是需要注意的是, 使用页面压缩不一定都是有益的, 特别是动态内容压缩,因为每次请求服务器都会对内容进行压缩, 对服务器性能会产生影响, 如果你服务器超级牛b的话,那就另说

    说个题外的,昨天使用MVC的时候,访问Views里面的静态页面,死活不成功,悲剧的是我使用MVC很长时间竟然没碰到这个问题,后来Google才知道Views是一个特殊目录,放在其他目录中就行

  • 相关阅读:
    hdu 1017 A Mathematical Curiosity 解题报告
    hdu 2069 Coin Change 解题报告
    hut 1574 组合问题 解题报告
    hdu 2111 Saving HDU 解题报
    hut 1054 Jesse's Code 解题报告
    hdu1131 Count the Trees解题报告
    hdu 2159 FATE 解题报告
    hdu 1879 继续畅通工程 解题报告
    oracle的系统和对象权限
    oracle 自定义函数 返回一个表类型
  • 原文地址:https://www.cnblogs.com/yihui/p/2397134.html
Copyright © 2011-2022 走看看