zoukankan      html  css  js  c++  java
  • 用Response.Filter生成静态页

    我原来写的利用UrlRewrite,asp.net动态生成htm页面(补充说明2) ,生成静态页面时,使用下边的代码

    Code

    上边的这个类在生成静态页的时候,如果.net解析代码时,遇到错误,它依然会生成一个静态页面,而且这个静态页面在程序运行结束的时候,还处于打开状态。
    显然这是我们不愿意看到的,而且这个类还不支持并发操作,如果和某一页面的关联的静态页失效了,假定这时候有两个用户同时访问这个页面,其中一个用户正在向静态页面写入数据,另外一个用户却需要访问这个已被别人打开的页面,系统同样会出现错误。基于这两个问题,我把这个类修改成下边的样子,就可以解决上述问题了。
    Code

    修改的地方是构造函数和这个方法(public override void Write(byte[] buffer, int offset, int count)),调用的方法分为两种,一种是在页面级别的调用,示例如下:
        protected override void OnInit(EventArgs e)
        
    {
            
    if (!this.IsPostBack)
            
    {
                
    string filePath = this.Server.MapPath(Common.AppName) + "\\index.htm";
                Response.Filter 
    = new AspNetFilter(Response.Filter, filePath);
            }

            
    base.OnInit(e);
        }

    重写Page类的OnInit方法,另外一种调用方法参考我写的利用UrlRewrite,asp.net动态生成htm页面(补充说明2
  • 相关阅读:
    竞态与死锁
    Java-核心技术-面试整理
    接口(工厂模式&代理模式)
    switch case实现两个数的算术运算
    继承和多态举例
    字符串的逆序输出
    引用传递&值传递
    递归的使用
    构造方法的重载
    给定数组,去掉0元素后将剩下的元素赋给新的数组
  • 原文地址:https://www.cnblogs.com/fengfeng/p/1072505.html
Copyright © 2011-2022 走看看