.net 生成 html,ASP.NET生成HTML静态页的一个类

最近学院网站要改版,于是有了这个想法,将首页生成静态文件,以提高访问速度。初步想法如下(只适应于首页静态文件生成):

IIS中设置默认文档顺序为index.html,default.aspx

然后重写default.aspx的render方法:

protected override void Render(HtmlTextWriter writer)

{ //这是默认的Render实现,直接输出到writer中

//base.Render(writer);

StringWriter html = new StringWriter();

HtmlTextWriter tw = new HtmlTextWriter(html);

//通过base.Render()方法,把生成的HTML写入到我们定义的tw中

base.Render(tw);

string path = Server.MapPath("index.html");

StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.Default);

//写入到文件中

sw.Write(html.ToString());

sw.Close();

//写入到writer中,以输出页面的HTML

//注意,这里不能再调用base.Render(writer),会出现错误

writer.Write(html.ToString());

}

这样在每次访问default.aspx的时候会在同目录下生成index.html文件,而一般用户访问时都会直接输入域名,如http://domain.com 这样由于iis中的设置,用户默认访问到的都是index.html静态页面,应该能有效提高首页打开速度。因为首页更新不会太快,添加了新闻或其它在首页显示的内容的时候可以手动访问一下http://domain.com/default.aspx 这个页来重新生成index.html,或者在发布新闻后自动访问一下default.aspx页,这样就能做到index.html页内容及时更新,这种方法应该比outputcache更好,问题也会少。当然前提是首页没有各种postback事件,有登录框倒好办,直接把登录框改为常规的hmtl form,用post的方式post到登录页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值