.net编写的网站程序“瘦身”之—-页面减肥

来源:互联网 发布:穿越火线经常网络异常 编辑:程序博客网 时间:2024/05/01 17:32

  .net写的WEB站点程序,在IE中,查看一下源码,可以发现会产生很多的冗余代码,如:

  1、Server端控件解析之后的缩进(会在源码中增加Tab键);

  2、Server端控件的EnableViewState值;

  对于国内带宽有限的用户来说,会明显的降低页面打开的速度。那么如何解决此问题呢,并且已开发的影响尽量少,或者更改的代码越少越好。经过笔者的实验,总结如下:

  1、如何删除Server端控件解析之后,自动加上的缩进字符呢?方法如下:

/// <summary>

/// 重新设置页面html输出流。

/// </summary>

/// <param name="writer">html输出流。</param>

/// <returns>html输出流。</returns>

public static HtmlTextWriter GetWriter (HtmlTextWriter writer)

{

     writer = new HtmlTextWriter (writer.InnerWriter, "");

 

       return (writer);

}

将此函数定义到公共App_Code中,也可以定义一个公共类中,自己决定。

 

protected override void Render (HtmlTextWriter writer)

    {

        writer = GetWriter (writer);

        base.Render (writer);

    }

  将函数放到每个页面里,为了查找方便,建议放到Page_Load上面,注意是与Page_Load平级。

 

  2、如何设置Server控件的EnableViewState属性,以减少Server端控件解析之后生成的大量的代码。

(1)       对于提交之后,不需要保存值的Server控件,需要将此属性设置为false

(2)       对于不需要使用Server控件的情况,建议使用Html控件。

 

  3、建议将javascript代码与页面分隔,因为javascript分离成js文件,浏览器打开页面时,会检测缓存目录里是否有js文件,如果有,则直接使用,不再从服务器上重新下载。这样可以节省很多的时间,加快页面的打开速度。

 

  4、通过设置IIS来回忆页面加载速度。这一招可以算是最后一个解决办法了。建议在其他优化都做好之后,再通过此方法解决。

  打开 Internet 信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在 "HTTP压缩" 框中选中 "压缩应用程序文件" 和 "压缩静态文件",按需要设置 "临时目录" 和 "临时目录的最大限制",如下图所示:

接下来配置 gzip 组件,在 Internet 信息服务(IIS)管理器,点击 "Web 服务扩展"->"增加一个新的 Web 服务扩展...",在 "新建 Web 服务扩展" 框中输入扩展名 "HTTP Compression",添加 "要求的文件" 为 C:/WINDOWS/system32/inetsrv/gzip.dll,选中 "设置扩展状态为允许",如下图所示:

 

还没完呢,我们还需要修改一个配置文件,修改之前请先停止 IIS 服务,打开 C:/Windows/System32/inetsrv/MetaBase.xml,这个文件很大,找到下面一段信息:

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
  HcCompressionDll="%windir%/system32/inetsrv/gzip.dll"
  HcCreateFlags="1"
  HcDoDynamicCompression="TRUE"
  HcDoOnDemandCompression="TRUE"
  HcDoStaticCompression="TRUE"
  HcDynamicCompressionLevel="0"
  HcFileExtensions="htm
   html
   txt"
  HcOnDemandCompLevel="10"
  HcPriority="1"
  HcScriptFileExtensions="asp
   dll
   exe"
 >
</IIsCompressionScheme>
 


  增加一些要进行压缩的文件后缀,其中 HcFileExtensions 是静态文件的扩展名,增加 js 和 css 等;HcScriptFileExtensions 为动态文件的扩展名,增加 aspx,保存后启动 IIS 即可生效。

  最后我们介绍如何来测试前面所做的工作是否起效,你可能会觉得很奇怪,配置好了,用浏览器打开页面正常,查看页面源码,内容并没有变化,大小也跟原来一样,怎么回事呢?这是因为浏览器已经把内容解压了的结果。

 

  以上是笔者在设计开发《泛东协同管理系统》时,发现的问题及解决办法,希望对大家有帮助。

源文请看:天狼工作室

原创粉丝点击