ASPX文件转HTML

转载 2007年09月25日 14:36:00
我们开发的asp.net系统中,有些动态的页面常被频繁访问,如我们的首页index.aspx它涉及到大量的数据库查询工作,当不断有用户访问它时,服务器便不断向数据库的查询,实际上做了许多重复的工作

服务器端的myPage.aspx
客户端显示myPage.htm
 
客户端访问
 

针对这种资源的浪费情况,我们现在来设计一个解决方案。我们先将那些一段时间内内容不会有什么改变,但又遭大量访问的动态页面生成静态的页面存放在服务器上,当客户端发出访问请求时,就让他们直接访问我们生成的静态页面,过程如下图。

客户端显示myPage.htm
 
客户端访问
 
Execute

 
服务器端的myPage.aspx
 
服务器端的myPage.htm
 

现在我们需要一个后台程序来完成这些事情。
我们可将此做成一个类class  AspxToHtml ,其代码如下:

using System;
using System.IO;
using System.Web.UI;


namespace LeoLu
{
/// <summary>
/// AspxToHtml 的摘要说明。
/// </summary>
public class AspxToHtml
{
/// <summary>
/// Aspx文件url
/// </summary>
public string strUrl;
/// <summary>
/// 生成html文件的保存路径
/// </summary>
public string strSavePath;
/// <summary>
/// 生成html文件的文件名
/// </summary>
public string strSaveFile;


public AspxToHtml()
{
//
// TODO: 在此处添加构造函数逻辑
//
}


/// <summary>
/// 将strUrl放到strSavePath目录下,保存为strSaveFile
/// </summary>
/// <returns>是否成功</returns>
public bool ExecAspxToHtml()
{
try
{
StringWriter strHTML = new StringWriter();
System.Web.UI.Page myPage = new Page(); //System.Web.UI.Page中有个Server对象,我们要利用一下它
myPage.Server.Execute(strUrl,strHTML); //将asp_net.aspx将在客户段显示的html内容读到了strHTML中
StreamWriter sw = new StreamWriter(strSavePath+strSaveFile,true,System.Text.Encoding.GetEncoding("GB2312"));
//新建一个文件Test.htm,文件格式为GB2312
sw.Write(strHTML.ToString()); //将strHTML中的字符写到Test.htm中
strHTML.Close(); //关闭StringWriter
sw.Close(); //关闭StreamWriter
return true;
}
catch
{
return false;
}
}



/// <summary>
/// 将Url放到Path目录下,保存为FileName
/// </summary>
/// <param name="Url">aspx页面url</param>
/// <param name="Path">生成html文件的保存路径</param>
/// <param name="FileName">生成html文件的文件名</param>
/// <returns></returns>
public bool ExecAspxToHtml(string Url,string Path,string FileName)
{
try
{
StringWriter strHTML = new StringWriter();
System.Web.UI.Page myPage = new Page(); //System.Web.UI.Page中有个Server对象,我们要利用一下它
myPage.Server.Execute(Url,strHTML); //将asp_net.aspx将在客户段显示的html内容读到了strHTML中
StreamWriter sw = new StreamWriter(Path+FileName,true,System.Text.Encoding.GetEncoding("GB2312"));
//新建一个文件Test.htm,文件格式为GB2312
sw.Write(strHTML.ToString()); //将strHTML中的字符写到Test.htm中
strHTML.Close(); //关闭StringWriter
sw.Close(); //关闭StreamWriter
return true;
}
catch
{
return false;
}
}
}
}
  

相关文章推荐

ASPX文件转HTML

我们开发的asp.net系统中,有些动态的页面常被频繁,如我们的首页index.aspx它涉及到大量的数据库查询工作,当不断有用户它时,服务器便不断向数据库的查询,实际上做了许多重复的工作…… ...

aspx转html文件

我们开发的asp.net系统中,有些动态的页面常被频繁,如我们的首页index.aspx它涉及到大量的数据库查询工作,当不断有用户它时,服务器便不断向数据库的查询,实际上做了许多重复的工作 服务...

.aspx文件和.html文件

起初学习牛腩新闻发布系统,对.aspx文件并不是很了解,网上学习完.aspx文件后却又发现好多人提到.html文件,很纳闷!自己学习的不对么?于是才有了这篇文章。对于.aspx文件和.html文件的区...

静态网页和动态网页—HTML(htm)文件和aspx(asp)文件

l  定义     ²  静态网页     静态网页:对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。你编的是什么它显示的就是什么、不会有任何改变。静态网页相对更新起来比较麻烦,适用于...

.aspx(或.asp)文件与.html(.htm)文件的区别与联系

由于都是用于描述网页文档的文件,自学asp.net起就对两者之间的关系很好奇 主要的区别在于,当用户请求页面时,它们在服务器的端的处理不同 下图解释客户端请求页面时,服务器端的处理流程:   .ht...

1、web(html):利用VS2010开发一个跳转页面aspx

本文来自:http://www.cnblogs.com/wxjnew/p/4165243.html 在开发项目的过程中,由于要集成Cognos的报表通过URL,但是Cognos报表的本身URL长度...

【转】ASPX和HTML获取系统根目录的路径

====================================================== 注:本文源代码点此下载 =============================...

HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值

在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号。 name是用来提交数据的,提供给表单用,可以重复; id则针对文档操作时候用,不能重复。如:documen...

HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值

HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值 在html中:name指的是用户名称,ID指的是用户注册是系统自...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASPX文件转HTML
举报原因:
原因补充:

(最多只允许输入30个字)