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;

    }

    }

    }

    }

  • 相关阅读:
    Atitti 图像处理 图像混合 图像叠加 blend 原理与实现
    Atitit Gaussian Blur 高斯模糊 的原理and实现and 用途
    Atitit 图像处理 灰度图片 灰度化的原理与实现
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
    Atitit 实现java的linq 以及与stream api的比较
    Atitit attilax在自然语言处理领域的成果
    Atitit 图像处理 常用8大滤镜效果 Jhlabs 图像处理类库 java常用图像处理类库
    Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
    Atitit apache 和guava的反射工具
    atitit。企业的价值观 员工第一 vs 客户第一.docx
  • 原文地址:https://www.cnblogs.com/eart/p/2057266.html
Copyright © 2011-2022 走看看