zoukankan      html  css  js  c++  java
  • 将aspx的动态页面生成静态的HTML页面

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

    服务器端的myPage.aspx

    客户端显示myPage.htm

    客户端

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

    客户端显示myPage.htm

    客户端

    Execute

    服务器端的myPage.aspx

    服务器端的myPage.htm

    现在我们需要一个后台程序来完成这些事情。

    我们可将此做成一个类classAspxToHtml ,其代码

    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()

    {

    //

    // TOD 在此处添加构造函数逻辑

    //

    }

    /// 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;

    }

    }

    }

    }

  • 相关阅读:
    Seaslog高性能日志系统学习
    同步、异步与阻塞、非阻塞、协程
    SQL常用增删改查语句
    js里的document对象大全(DOM操作)
    php的cURL资源的初步使用
    hive学习笔记(初级)
    使用NSIS制作可执行程序的安装包
    C#设置一个控件可以鼠标拖动
    C#画图超出屏幕的部分无法显示的解决方法
    C#获取当前不同网卡对应的iP
  • 原文地址:https://www.cnblogs.com/eart/p/2057266.html
Copyright © 2011-2022 走看看