博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.Net生成静态HTML页
阅读量:6450 次
发布时间:2019-06-23

本文共 2616 字,大约阅读时间需要 8 分钟。

动态网页开发技术中,为了降低网站维护的工作量,常常用到动态页面技术。目前因特网上流行的做法是将网站中需要经常更新的数据存放到数据库中,当客户端浏览器向服务器发出HTTP请求时,服务器通过执行、解释某个程序,将运行结果以HTML格式传送至客户端浏览器,客户端浏览器接收、解释并显示。但服务器在执行这些程序时一般都要从数据库中查询并读取记录[1],这些操作都是以效率作为代价的。因为服务器端在执行程序时,查询、读取数据库中的数据,再生成这种HTML格式代码的过程显然需要消耗服务器资源,随着数据库中记录的不断增加,对访问量较大的网站来说会出现服务器的负担过重的情况。

对于静态页面来说,由于其页面本身存储的就是HTML静态文件,浏览器在访问这样的页面时,直接从服务器端把这些静态文件中的HTML代码传递到客户端浏览器即可。因此,在访问速度上,静态页面要比动态页面快很多。但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比修改编辑、阅读权限限制等,但是,对于一些我们经常频繁使用的文件,例如我们开发的新闻发布系统,我们不希望很多用户都读取数据库才显示结果,这样一方面消耗了服务器的资源,另一方面占去了浏览者大量可贵的响应时间,所以,就有了把动态网页“静态页面化”的做法,当前很多网站都采用这种技术(新浪、网易、搜狐等大型网站),这些静态页面显然不是一页一页手工做成的,那么,能否有更好的解决办法呢?

要解决这样的问题,一般都在网站的管理后台有一个网页信息发布程序,在网站内容管理员添加网页时直接利用管理后台的网页信息发布程序把页面存成HTML静态文件,这种页面从最终的结果来看是静态的,但它是通过动态技术生成的。

 

主要步骤:

1、创建模版html页

2、使用io流,根据模版页创建静态html

 

创建模版html页:

   ShowArticle    biaoti 
content
author

创建一个Helper类,里面有个WriteFile方法:

public class Helper{    public static bool WriteFile(string strText, string strContent, string strAuthor)    {        string path = HttpContext.Current.Server.MapPath("~/news/");        Encoding code = Encoding.GetEncoding("UTF-8");        // 读取模板文件        string temp = HttpContext.Current.Server.MapPath("~/news/template.html");        StreamReader sr = null;        StreamWriter sw = null;        string str = "";        try        {            sr = new StreamReader(temp, code);            str = sr.ReadToEnd(); // 读取文件        }        catch (Exception exp)        {            HttpContext.Current.Response.Write(exp.Message);            HttpContext.Current.Response.End();            return false;        }        finally        {            sr.Close();        }        string htmlfilename = DateTime.Now.ToString("yyyyMMddHHmmss") + ".html";        // 替换内容        // 这时,模板文件已经读入到名称为str的变量中了        str = str.Replace("ShowArticle", strText); //模板页中的ShowArticle        str = str.Replace("biaoti", strText);        str = str.Replace("content", strContent);        str = str.Replace("author", strAuthor);        // 写文件        try        {            sw = new StreamWriter(path + htmlfilename, false, code);            sw.Write(str);            sw.Flush();        }        catch (Exception ex)        {            HttpContext.Current.Response.Write(ex.Message);            HttpContext.Current.Response.End();            return false;        }        finally        {            sw.Close();        }        return true;    }}

接下来只要在需要创建静态html的页面中调用上面的方法就可以了。例如:

   bool result = Helper.WriteFile(this.txtBiaoti.Text.Trim(), this.txtContent.Text.Trim(), this.txtAuthor.Text.Trim());
        if (result)
        {
            Response.Write("HTML生成成功!");
        }
        else
        {
            Response.Write("HTML生成失败!");
        }

 

 

转载地址:http://wmowo.baihongyu.com/

你可能感兴趣的文章
看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)
查看>>
修改默认ssh端口
查看>>
使用CocoaPods管理iOS的第三方类库
查看>>
Go 性能优化技巧 6/10
查看>>
我的Linux生涯之Mysql:Day04[Mysql之权限管理]
查看>>
javascript知识总结——标准时间与时间戳互换
查看>>
Spring @Async
查看>>
Python 函数
查看>>
制作自己的Winpe镜像(3):Wim镜像捕获及Wim镜像应用
查看>>
Java参数传递方式?
查看>>
我的友情链接
查看>>
设计模式之——适配器模式详解
查看>>
Spring Data JPA 简单介绍
查看>>
JavaScript入门
查看>>
jsp内置对象之 resquest
查看>>
meteor-angular优化启动
查看>>
springboot 系列教程十:springboot单元测试
查看>>
码云和git指令
查看>>
一篇不错的wsl文章
查看>>
推论统计8
查看>>