您的位置:首页 > 编程语言 > ASP

ASPX文件转HTML

2016-05-02 09:41 465 查看
我们开发的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;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: