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;
}
}
}
}
服务器端的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;
}
}
}
}
相关文章推荐
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
- VS2015 ASP.NET5 Web项目结构浅析
- 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1】
- ASP.Net在64位环境开发部署常见问题
- ASP.NET 状态管理(cookie、Session)
- Metaspoilt简单攻击操作
- ASP中页面之间传递值的几种方式
- casper爬虫操作记录
- 让我们Core在一起:ASP.NET Core & .NET Core
- Spring中的AOP(七)(实际上应该是一)——AspectJ的基本使用
- Raspberry pi3 入门一
- Raspberry Pi 配置笔记二
- Asp.Net MVC 4 Web API 中的安全认证-使用OAuth
- Asp.Net MVC3 简单入门详解过滤器Filter
- 在RaspberryPi中用CasperJS对网页元素截图
- asp:DropDownList与asp:DataList的联合使用
- 【asp.net】控件
- ASP.NET MVC 网站开发总结(三) ——图片截图上传
- asp.net MVC 中 Session统一验证的方法
- ASPxGridView 导出和部分属性设置