asp.net 页面静态化
页面静态化,有三种方式 伪静态 真静态,折中法 现在我做的是折中发
创建一个asp.net 页面, 连接跳转到还未生成的页面

创建HttpHandle类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
/// <summary>
/// HttpHandle 的摘要说明
/// </summary>
public class HttpHandle : IHttpHandler
{
public bool IsReusable
    {
        get
        {
            return false;
        }
    }
public void ProcessRequest(HttpContext context)
    {
        string url = context.Request.RawUrl;
        int last = url.LastIndexOf("_");
        int dot = url.LastIndexOf(".");
        int NewNewsID = int.Parse(url.Substring(last + 1, dot - last - 1));
        string carfilepath = context.Server.MapPath("~/new/newNews_" + NewNewsID + ".html");
if (!File.Exists(carfilepath))
        {
            NewNews NN = new NewNews();
            List<push> NewNe = NN.NewNe;
            string templatepath = context.Server.MapPath("~/new/HtmlPage.html");
            string templateHtml = ReadTemplate(templatepath);
            templateHtml = templateHtml.Replace("{$NewNewsName}", NewNe[NewNewsID].NewNewsName);
            templateHtml = templateHtml.Replace("{$NewNewsTitle}", NewNe[NewNewsID].NewNewsTitle);
            templateHtml = templateHtml.Replace("{$NewNewsConters}", NewNe[NewNewsID].NewNewsConters);
WriteHtmlFile(carfilepath, templateHtml);
        }
        context.Response.WriteFile(carfilepath);
}
// private string ReadTemplate(string templatePath)
    //{
    //    //检测模板文件是否存在
    //    if (!File.Exists(templatePath))
    //    {
    //        //模板文件不存在,抛出异常
    //        throw new Exception("汽车详情页面的模板文件未找到!");
    //    }
    //    //创建文件流
    //    FileStream fs = new FileStream(templatePath, FileMode.Open);
    //    //创建流读取器
    //    StreamReader sr = new StreamReader(fs);
    //    //读取文件流中的文本
    //    string templeteHtml = sr.ReadToEnd();
    //    //关闭流读取器
    //    sr.Close();
    //    //关闭文件流
    //    fs.Close();
    //    //返回读取的模板HTML
    //    return templeteHtml;
    //}
    ////写静态文件
    //private void WriteHtmlFile(string savedPath, string htmlStr)
    //{
    //    FileStream fs = new FileStream(savedPath, FileMode.Create);
    //    StreamWriter sw = new StreamWriter(fs);
    //    sw.Write(htmlStr);
    //    sw.Close();
    //    fs.Close();
    //}
//读取模板方法
private string ReadTemplate(string templatePath)
        {
            if (!File.Exists(templatePath))
            {
                throw new Exception("报错");   
            }
            FileStream fs = new FileStream(templatePath, FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            string templeteHtml = sr.ReadToEnd();
            sr.Close();
            fs.Close();
            return templeteHtml;
        }
//
        private void WriteHtmlFile(string savedPath, string htmlStr)
        {
            FileStream fs = new FileStream(savedPath, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            sw.Write(htmlStr);
            sw.Close();
            fs.Close();
        }
    }
创建一个
NewNews 表示服务器
添加数据
public List<push> NewNe = new List<push>();
    public NewNews()
    {
        NewNe.Add(new push() { NewNewsID = 0, NewNewsName = "今天是2018/5/30", NewNewsTitle = "今天下雨了", NewNewsConters = "圆周" });
        NewNe.Add(new push() { NewNewsID = 1, NewNewsName = "今天下雨了嘛是", NewNewsTitle = "今天下雨了", NewNewsConters = "32" });
        NewNe.Add(new push() { NewNewsID = 2, NewNewsName = "今天是2018/5/30", NewNewsTitle = "今天下雨了", NewNewsConters = "烦烦烦烦烦烦22342" });
        NewNe.Add(new push() { NewNewsID = 3, NewNewsName = "今天是2018/5/30", NewNewsTitle = "今天下雨了", NewNewsConters = "2342" });
}
}
创建一个push 类 添加属性字段
/// <summary>
/// push 的摘要说明
/// </summary>
public class push
{
    public int NewNewsID { get; set; }
    public string NewNewsName { get; set; }
    public string NewNewsTitle { get; set; }
    public string NewNewsConters { get; set; }
}
新建一个html页面 .为模板
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>表格</title>
</head>
<body>
<div>
        <p>{$NewNewsName}</p>
        <p>{$NewNewsConters}</p>
        <p>{$NewNewsTitle}</p>
</div>
</body>
</html>
这样子 就可以了
asp.net 页面静态化的更多相关文章
- Asp.Net MVC页面静态化功能实现二:用递归算法来实现
		上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net ... 
- Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter
		上一篇有提到利用IHttpModule和ResultFilter实现页面静态化功能.后来经过一些改动,将ResultFilter中要实现的功能全部转移到IHttpModule中来实现 Asp.Net ... 
- Asp.Net MVC页面静态化功能实现一:利用IHttpModule和ResultFilter
		由于公司现在所采用的是一套CMS内容管理系统的框架,所以最近项目中有一个需求提到要求实现页面静态化的功能.在网上查询了一些资料和文献,最后采用的是小尾鱼的池塘提供的 利用ResultFilter实现a ... 
- 利用ResultFilter实现asp.net mvc 页面静态化
		为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容 ... 
- 利用ResultFilter实现asp.net mvc3 页面静态化
		为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容 ... 
- Asp.net动态页面静态化之初始NVelocity模板引擎
		Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含&q ... 
- ASP.NET MVC 页面静态化操作的思路
		本文主要讲述了在asp.net mvc中,页面静态化的几种思路和方法.对于网站来说,生成纯html静态页面除了有利于seo外,还可以减轻网站的负载能力和提高网站性能.在asp.net mvc中,视图的 ... 
- ASP.NET MVC使用SSI来实现页面静态化
		页面静态化分为两种:伪静态和真静态,这里主要介绍的是真静态. 进入正题之前先简单介绍一下SSI和shtml: 1).SSI是Server Side Include的简称(服务器端嵌入) 2).shtm ... 
- ASP.NET MVC中,动态处理页面静态化
		首先解释一下什么是动态处理页面静态化 对于需要静态化的页面,第一次访问某个Action时,会先执行Action,并在页面渲染后向Response和服务器中网站的目录下都写入需要返回的html,而第二次 ... 
随机推荐
- 82. 删除排序链表中的重复元素 II
			# 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字,比如: # 输入: 1->2->3->3->4->4->5 # 输出: 1 ... 
- Ubuntu14.04LTS 下配置Tomcat Hadoop eclipse环境
			下在相关软件: (genju yingjian xuanze xitong weishu,根据系统是32位还是64位选择软件的版本:jdk和eclipse) HADOOP:http://mirrors ... 
- OpenCV.3.4.6.附加依赖项
			ZC:VS2015 "项目属性 --> 链接器--> 输入--> 附加依赖项" 中 添加内容 1.E:\OpenCV_something\opencv-3.4.6 ... 
- 什么是Java多线程?
			第五阶段 多线程 前言: 一个场景:周末,带着并不存在的女票去看电影,无论是现场买票也好,又或是手机买票也好,上一秒还有位置,迟钝了一下以后,就显示该座位已经无法选中,一不留神就没有座位了,影院的票是 ... 
- oracle——学习之路(select检索)
			select语法: select [distinct|all] 列名 from 表名 [where] [group by] [having] [order ... 
- Win7 Eclipse 搭建spark java1.8环境:WordCount helloworld例子
			[学习笔记] Win7 Eclipse 搭建spark java1.8环境:WordCount helloworld例子在eclipse oxygen上创建一个普通的java项目,然后把spark-a ... 
- IDEA插件之FindBugs
			1.是个啥? Findbugs,它是一个静态分析工具,用来查找Java代码中的程序错误.它使用静态分析来识别Java程序中上百种不同类型的潜在错误. 2.安装 File -> Settings ... 
- centos7 宝塔php7安装mongodb扩展
			一.下载.解压源码 下载地址:https://pecl.php.net/package/mongodb wget -c https://pecl.php.net/get/mongodb-1.5.3.t ... 
- Docker 常用命令和Dockerfile
			Docker 简介 官方的解释为:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现 ... 
- 第六章 ZYNQ-MIZ701 GPIO使用之MIO
			6.0 本章难度系数★★☆☆☆☆☆ 6.1 GPIO简介 Zynq7000系列芯片有54个MIO(multiuse I/O),它们分配在 GPIO 的Bank0 和Bank1隶属于PS部分,这些I ... 
