C#实现动态页面静态化
制作一个aspx页面,专门用来生成各个动态aspx页面的静态页面。如下图所示,仅将内容页和主页面生成静态页面,当然本例只是一个简单的范例,实际情况如很复杂,但原理都是相同的。
生成内容页:
本例中的不同内容页以不同的ID来进行区分,输入不同的ID值,点击“生成内容页”按钮,将调用执行后台代码(如代码),进行生成html页面。
如果内容页的内容发生变化,再次执行上面的步骤,重新生成即可。
下图代码中的参数分别表示动态url、静态网站路径、静态文件名称,需要更加实际情况修改。
StringWriter sw = new StringWriter();
string cid = this.TextBox1.Text.Trim();
Server.Execute("/Detail.aspx?id=" + cid, sw);
string contentStr = sw.ToString();
string filePath = Server.MapPath("/detail");
if (Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
} filePath += "/" + cid + ".html";
StreamWriter sWriter = new StreamWriter(filePath, false, Encoding.Default);
sWriter.Write(contentStr);
sWriter.Flush();
sWriter.Close();
生成主页面:
直接点击前台的“生成主页”按钮,执行后台代码(如代码所示),将生成主页html。如果主页的内容发生变化,重新生成即可。下图代码中的参数需要根据实际情况修改。
StringWriter sw = new StringWriter();
Server.Execute("index.html", sw);
string contentStr = sw.ToString();
string filePath = Server.MapPath("/");
filePath += "/index.html";
StreamWriter sWriter = new StreamWriter(filePath, false, Encoding.Default);
sWriter.Write(contentStr);
sWriter.Flush();
sWriter.Close();
生成静态页面的另一种方法是:重写每个页面需要静态化的动态页面.cs文件的 Render()方法,如代码所示。该方法实现简单,但是每次访问该页面时,都会重新再次执行Render()方法,生成页面,性能较低。
StringWriter sw = new StringWriter();
HtmlTextWriter tw= new HtmlTextWriter(sw);
base.Render(tw);
StreamWriter streamWriter = new StreamWriter(Server.MapPath("index.html"),false,Encoding.Default);
streamWriter.Write(sw.ToString());
streamWriter.Close();
tw.Close();
Response.Write(sw.ToString());
C#实现动态页面静态化的更多相关文章
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- Asp.net动态页面静态化之初始NVelocity模板引擎
Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含&q ...
- C#.NET动态页面静态化生成
一,动态页面生成静态也的思路是怎样呢? 1>首先我们都是需要有一个静态模板,这模板的作用就是静态页的最基本模板,如下代码: <!DOCTYPE HTML PUBLIC "-//W ...
- php使用ob缓存来实现动态页面静态化
php7中的php.ini 默认开启 output_buffering = 4096 例子: <?phpinclude_once 'common/common.php';//数据库操作方法 $f ...
- php页面静态化
如何优化页面响应时间: 动态页面静态化 优化数据库 使用负载均衡 使用缓存 如果页面中的一些内容不经常改动,可以使用动态页面静态化.好处是:减少服务器脚本的计算时间:降低服务器的响应时间. 1.动态U ...
- PHP 实现页面静态化
PHP文件执行阶段:语法分析->编译->运行 静态html文件执行顺序:运行 动态程序: 连接数据库服务器或者缓存服务器->获取数据->填充到模板->呈现给用户 关于优化 ...
- filter应用案例四:页面静态化
1 说明 你到"当当"搜索Java分类图书时,"当当"会去查询数据库!每天都有很多人去搜索"Java分类"的图书,每次都去访问数据库,这会有 ...
- JavaWeb笔记——利用过滤器实现页面静态化
1.说明 页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面. * 核心思路为拦截请求,实现请求转发指向静态页面 ...
- [转]PHP实现页面静态化的超简单方法
为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态 ...
随机推荐
- 编辑login.sql进行sqlplus登陆设置
执行SQLPLUS登录到SQL 界面时候,就会自动的加载 $ORACLE_HOME/sqlplus/admin 中的login.sql(若没有则加载glogin.sql) 这里面的东西 是根据自己的爱 ...
- IIS 内部运行机制
ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用. 绝大多数的人只熟悉高层的框架如: WebForms 和 WebServices ...
- 【java基础】选择排序and冒泡排序
前言 : 今天学习的是J2SE视频里的第五章,数组部分,它里面留了一个经典的作业,就是让我们去从1倒9按一定规格排序,这让我想起了学习vb的时候最最让我头疼的两种排序方法,选择排序法 和 冒泡排序法. ...
- CF735C 数论\平衡树叶子节点的最大深度\贪心\斐波那契\条件归一化
http://codeforces.com/problemset/problem/735/C 题意..采用淘汰赛制..只要打输就退出比赛..而且只有两个选手打过的场数 相差不超过1才能比赛..最后问你 ...
- 简单的c#插件框架
插件式架构,一种全新的.开放性的.高扩展性的架构体系.插件式架构设计近年来非常流行,基于插件的设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现.扩展功能与框架以一种很松的 ...
- windows安装python
1:首先去python网站下载安装包:https://www.python.org/downloads/,注意自己的系统版本 2:在自己指定目录安装即可: 3:将python路径加入PATH环境变量: ...
- SpringRMI解析3-RmiServiceExporter逻辑细节
在发布RMI服务的流程中,有几个步骤可能是我们比较关心的. 获取registry 由于底层的封装,获取Registry实例是非常简单的,只需要使用一个函数LocateRegistry.createRe ...
- DSP using MATLAB 示例Example3.1 3.2 3.3
上代码: w = [0:1:500]*pi/500; % [0,pi] axis divided into 501 points. X = exp(j*w) ./ (exp(j*w) - 0.5*on ...
- Xamarin Android教程Android基本知识版本介绍与系统介绍
Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...
- Scau 8633 回文划分 mancher + dp
时间限制:1000MS 内存限制:1000K 提交次数: 通过次数: 题型: 编程题 语言: G++;GCC Description 我们说一个字符串是回文串,那么意味着这个串从两边读起来的字母都是一 ...