staticHtml使用教程

阅读目录

[TOC]

##简介

staticHtml是asp.net平台的一个开源,高效,易扩展的网页静态化组件,不依赖任何第三方库,简单小巧dll文件不足20k。

特性

无需更改您任何代码,只需要简单的配置,即可使您站点具有html静态化的能力,提高您网站的性能,

完全使用GZip存储,输出,减少服务器硬盘消耗,大大减少网络带宽

支持内存缓存,您可以按照您的需要,将部分缓存页面, 直接缓存到内存,提高性能,比如说常用的首页

自动判断30*,50*等输出头,不进行缓存

缓存策略灵活,系统支持时间过期策略,支持查询数据库过期策略

如何使用

1. 在web.config文件configSections节点中添加配置读取节点如下

2. 在system.web/httpmodules节点中添加如下节点

3. 在config节点中添加如下节点

4. over

配置完成,当您访问您的页面domain/index.aspx时候,系统将缓存您的页面到内存,每5分钟刷新一次。当您访问的您的网页,url中如果保护有Content/的时候,缓存180秒,缓存内容保存到cacheHtml_Content目录下面,采用访问的url md5加密的形式作为系统的唯一的key,也是文件存储的名字。

如何扩展

或许大家看到配置文件的时候也猜到一些东西,对,上面那些配置都是可以自定义的,可以简单的实现一些接口,即可实现您自己的功能。事实上,这些配置就是为了让您回答这么几个问题

您需要缓存什么样的页面

您缓存的东西存在哪里

你采用一个什么样的缓存过期策略

您通过什么样的方式,将你缓存的页面,生成一个系统唯一的key, 在系统里面, 这个key就代表了这个页面。 也将用这个key生成的缓存文件的文件名

这4个问题,您都可以自定义的回答,只需要简单的继承系统里面的接口,配置上去就可以

您需要缓存什么样的页面

public interface IPatten

{

///

/// 将HttpRequest判断是否匹配Rule规则

///

/// HttpRequest请求

/// 是否匹配

bool IsPatten(HttpRequest request);

}

您缓存的东西存在哪里

///

/// 存储生成的Html缓存内容接口

///

public interface IStore

{

///

/// 存储Html

///

/// HttpRequest生成的key

/// 内容

void Save(String key, Stream repInfo);

///

/// 获取缓存的Html

///

/// HttpRequest生成的key

/// 内容

Stream Get(String key);

///

/// 查询缓存信息

///

/// HttpRequest生成的key

/// HtmlInfo包含存储时间,大小等

CacheInfo Query(String key);

}

你采用一个什么样的缓存过期策略

///

/// 该缓存内容是否过期判断接口

///

public interface IExpire

{

///

/// 是否过期

///

/// 当前HttpReq

/// 缓存信息

/// 是否过期

bool IsExpire(HttpRequest req, CacheInfo info);

}

您通过什么样的方式,将你缓存的页面,生成一个系统唯一的key

///

/// 将HttpRequest生成唯一key接口

///

public interface IGenKey

{

///

/// 根据HttpRequest生成唯一key

///

/// HttpRequest请求

/// 唯一key

String GenKey(HttpRequest request);

}

大家可以查看[源码]里面上面的配置文件的配置项,即可查看系统是如何实现这些接口的。

其他

首先感谢大家花这么多的时间,看完这篇文档,因为我知道大家都很忙(校长,城管都那么忙的,呵呵。)。 做这个花费了我很多的时间,本来以为是个很简单的东西,但是却碰到各种奇怪的问题,比方说高并发测试的时候性能非常低,甚至直接卡死整个站点,无法接受任何请求,找出这些问题,废了很多心思,调试了很多。由于是多线程应用,调试起来也非常麻烦。可能也是因为功力不够吧。 网页静态化,在某些场合还是很合适的,它能提高一些服务器的吞吐量。希望能大家测试与使用,并给我反馈,当然了如果您愿意贡献您的智慧,那就更好了,源码我托管在github。有什么问题,可以发送邮件到这个邮箱tianqiq@gmail.com。谢谢!

asp.net html 扩展,StaticHtml相关推荐

  1. ASP.NET MVC扩展库

    很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行.这个项目的核心是IOC容器,包括Ninject ...

  2. 为ASP.NET MVC扩展异步Action功能(下)

    本文分为上下两部分,您也可以从<Extend ASP.NET MVC for Asynchronous Action>获得全部内容. 执行Action方法 对于执行同步Action的Syn ...

  3. ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号

    写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服 ...

  4. 检查是否禁止asp.net服务扩展_在 Kubernetes 环境下部署 OpenWhisk 服务

    本文使用 Zhihu On VSCode 创作并发布 1. 总体目标 终于开始准备毕业设计了.在和导师们的讨论之后,我们确定之后的研究方向将会专注于 Serverless Computing. 先长舒 ...

  5. asp:boundfield html,扩展(ASP.NET)BoundField

    未经测试: public class HighlightBoundField : DataControlField { //property to indicate if this field sho ...

  6. 13个 ASP.NET MVC 的扩展

    ASP.NET MVC设计的主要原则之一是可扩展性.处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的.因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏 ...

  7. 在ASP.NET中UrlRewrite的实现(能隐藏扩展名)之一

    摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重写.URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.讨论实现 URL 重写的各种技术,并介绍执 ...

  8. 【翻译】ASP.NET 4中的可扩展输出缓存

    翻译自:http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-20 ...

  9. asp.net学习之扩展GridView

    本节讨论如何从现有的控件,进而扩展成强大的,更定制的GridView控件 1.扩展BoundField 默认的BoundField不能显示多文本,文字一多,就会扩大整个Table的Height值,解决 ...

  10. HttpHand和HttpModule的详细解释,包括Asp.Net对Http请求的处理流程。

    了解当用户对一个.aspx页面提出请求时,后台的Web服务器的动作流程.当对这个流程了解后,我们就会明白HttpHandler和HttpModule的作用了. 首先,来了解一下IIS系统.它是一个程序 ...

最新文章

  1. 大牛深入浅出讲解c语言do{...}while(0)功能及用法
  2. Exynos 4412启动过程(群聊笔记记录)
  3. 如何不让浏览器读取html缓存,不让浏览器缓存index.html
  4. LSTM原理解读汇总
  5. css 横线_atom.css正式发布,从此跟CSS框架说拜拜。
  6. Java引用类型变量如何分配内存空间?
  7. js判断软键盘是否开启弹出
  8. Generation I--组合数和数学
  9. [mock]10月4日
  10. Atitit 数据记录存储方式 索引组织表 堆组织表 储方式 InnoDB 引擎把数据放在主键索引上,其他索引上保存的是主键 id。这种方式,我们称之为索引组织表(Index Organizi
  11. Spyder汉化(python汉化)
  12. linux命令大全密码修改,linux修改密码命令
  13. 【超图+CESIUM】【基础API使用示例】45、超图|CESIUM - 点光源设置
  14. Greenplum6.x监控软件搭建
  15. [内附完整源码和文档] 基于JSP的网上订餐管理系统的设计与实现
  16. 如何提高产品质量-开发维度
  17. Qt之图片自适应QLabel的大小
  18. inter至强服务器处理器型号,Haswell-EP抢先探!至强E5 V3系列CPU规格
  19. 课堂结队作业:二维数组(2)
  20. ZZULIOJ 1795 爱吃薯片的寒聚聚

热门文章

  1. 17. Contoller(2)
  2. 5. wordpress 简单加速 ---gzip
  3. 第2讲 ZF2.4 最新框架搭建
  4. 前端面试宝典(4)——必掌握
  5. 问题:document.documentElement与document.body的区别
  6. 客户端(浏览器端)数据存储技术概览
  7. PIP(Python包管理工具)-Mac环境下安装
  8. Netty源码分析第1章(Netty启动流程)----第3节: 服务端channel初始化
  9. django 分页(2) 使用类 页码显示
  10. HttpWebRequest,HttpWebResponse