asp.net mvc3的静态化实现】的更多相关文章

为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存,直接上代码: public class StaticFileWriteFilterAttribute : FilterAttribute, IResultFilter    {        public void OnResultExecuted(ResultExecutedConte…
静态化处理,可以大大提高客户的访问浏览速度,提高用户体验,同时也降低了服务器本身的压力.在asp.net mvc3中,可以相对容易地处理静态化问题,不用过多考虑静态网页的同步,生成等等问题.我提供这个方法很简单,就需要在需要静态化处理的Controller或Action上加一个Attribute就可以.下面是我写的一个生成静态文件的ActionFilterAttribute. 1     using System;   2     using System.IO;   3     using S…
由于公司现在所采用的是一套CMS内容管理系统的框架,所以最近项目中有一个需求提到要求实现页面静态化的功能.在网上查询了一些资料和文献,最后采用的是小尾鱼的池塘提供的 利用ResultFilter实现asp.net mvc3 页面静态化实现方式,然后结合IHttpModule过滤并判断当前请求.实现代码如下: 实现思路:当服务器接收到一条Http请求后,会先进入IHttpModule并分析出当前请求的Url对应的静态页面文件路径.如果该文件存在,直接返回静态页面给客户端,终止本次请求.如果静态页面…
本文主要讲述了在asp.net mvc中,页面静态化的几种思路和方法.对于网站来说,生成纯html静态页面除了有利于seo外,还可以减轻网站的负载能力和提高网站性能.在asp.net mvc中,视图的Razor引擎和控制器为我们静态化提供了新的思路和方法,我们可以利用视图引擎和重写过滤器进行静态操作.   先说下本人目前已知的静态化思路,大概有4种方法: 一.使用html模板搭配自定义占位符标识 这是最常见的方法,这种方法需要先编写一个html模板页,模板中定义好需要替换的占位符标识,在需要生成…
上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter 后来想到可以通过WebRequest获取html代码,然后采用递归算法来实现.基本实现思路如下: 通过WebRequest获取超链接地址返回的html代码,并保存:然后正则表达式匹配html代码中所有的超链接hr…
上一篇有提到利用IHttpModule和ResultFilter实现页面静态化功能.后来经过一些改动,将ResultFilter中要实现的功能全部转移到IHttpModule中来实现 Asp.Net MVC页面静态化功能实现一:利用IHttpModule和ResultFilter 1.改动后的自定义IHttpModule实现代码: public class RouterHttpModule : IHttpModule { public void Init(HttpApplication appl…
而我们预期的结果应该如下图,实际只请求两次. 用301重定向可以解决该循环请求产生的问题. OK, let's begin. 本文的Demo和Source是基于上一篇的,如果下面的一些文件或文件夹没有提及创建的,表示已经在上一篇文章中创建过. 本文已经同步至我的个人博客站点:积累吧|ASP.NET 页面双向静态化 源代码下载:Routing-Static-Page-Demo-V2 Demo(点击这些链接会自动跳转到对应的.html页): http://csdemo.jileiba.com htt…
Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并…
为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存,直接上代码: public class StaticFileWriteFilterAttribute : FilterAttribute, IResultFilter { public void OnResultExecuted(ResultExecutedContext filterC…
http://www.cnblogs.com/gowhy/archive/2013/01/01/2841472.html…
最近在思考网站要不要进行静态化的问题,在网上收集和整理了有关静态化利与弊的资料,于是写下此博文分享到网络上.由于本人是一名asp.net开发人员,所以本文的观点可能无法涉及到全部方面,但是比较注重于使用ASP.NET所开发的网站,毕竟网站开发技术种类繁多,并且各有特点.下面会从多个方面对网站静态的利与弊进行分析. PS:博文中不包含相关静态化实现方法的内容,只对ASP.NET网站静态化的优点与缺点进行思考和分析. 从搜索引擎优化的角度考虑 根据网上的资料来看,网站静态化考虑最多的就是SEO了,事…
目前,各大搜索引擎如google.百度.雅虎已经对动态页面诸如asp,php有着不错的支持了,只要动态页面后面的参数不要太长,如控制在3个参数内,页面内容做点优化,各大搜索对该类页面收录甚至不比静态html页面差,我有个全站是asp页的网站,其收录及排名远远超过了很多静态页的网站. 当然,任何网站,结构再好,如果没有内容作为支撑的话,最终还是留不住用户.搜索引擎的发展速度,已经不是当初几乎不能收录动态页面的水平了,各大搜索都在全力发展自己的索引技术,一般的动态页面在它们那里已经是能够轻易的纳入麾…
分享 最近在公司成功落地了一个用ASP.NET Core 开发前台的CMS项目,虽然对于表层的开发是兼容MVC5的,但是作为爱好者当然要用尽量多的ASP.NET Core新功能了. 背景 在项目开发的过程中,为了满足需求,还是有许多功能要自己"发明",也就是已有技术的组(qi)合ji)运(yin)用(qiao).本例先讲讲如果用中间件开发所有CMS都需要的服务端静态缓存方法. CMS系统的一大痛点是一个页面要查询的内容很多,所以常常为了减轻服务器压力,都会使用到各种缓存技术.比如静态文…
asp.net mvc 性能优化--(1)静态化 在改善页面性能的同时,可能会采用静态化的策略,对于不能实时静态化的内容,则采用缓存.本文主要讨论如何实现cshtml的静态化(实际上还不是完全的html文件,因为还有一些无法实时静态化的内容需要再嵌入C#代码,此处暂不讨论),以及静态化所带来的一些问题. 对于一个搜索页面,如租房,有几个地区.价格.户型的分类搜索,这些分类搜索是允许叠加使用的,并且,一个组合的搜索结果中可能还有好几页的内容,所以,我们要做的静态化,就是要穷尽所有的组合,并生成相应…
页面静态化,有三种方式 伪静态  真静态,折中法  现在我做的是折中发 创建一个asp.net  页面,  连接跳转到还未生成的页面 创建HttpHandle类 using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;/// <summary>/// HttpHandle 的摘要说明/// </summary>public class HttpH…
页面静态化分为两种:伪静态和真静态,这里主要介绍的是真静态. 进入正题之前先简单介绍一下SSI和shtml: 1).SSI是Server Side Include的简称(服务器端嵌入) 2).shtml是包含有嵌入式服务器方包含命令的HTML文本.在被传送给浏览器之前,服务器会对shtml文档进行 完全的读取.分析以及修改.   想要让IIS支持服务器包含,还需要简单配制一下,打开服务器端包含即可.启用或关闭Windows功能-> Internet Information Services->…
背景:现在几乎每个企业都要用到邮箱,而在大客户量情况下,为我们的不同等级的客户送上节日关怀,以及把我们的喜讯.新品通知到他们是我们急需解决的问题.效果如图 思路: 1.静态化网页模版,首先考虑需要发送什么,把需要的东西做成小而精美的html静态化页面以待发送时候用到: 2.关于发送问题,点击“发送邮件”弹出群发邮件的框,填写主题.html的服务器所在地址.收件人(多个): 3.群发的实现. 代码C#: /// <summary>/// 发送失败的邮箱地址搜集参数/// </summary…
直接通过访问页面获取html代码实现静态化 突然想到一个静态化页面的方法:直接保存源代码即可. 模拟浏览器访问,获得源码,写入文件.不知道是否存在安全风险:各位大神请指点: 注意 1.资源使用绝对路径,包括图片,JS,CSS和其他资源. 2.html文件可能需要统一管理(按目录/日期分类保存,使用了觉得路径可以避免资源失效). 示例代码 string file = Server.MapPath("/") + "index.html"; Response.Write(…
首先解释一下什么是动态处理页面静态化 对于需要静态化的页面,第一次访问某个Action时,会先执行Action,并在页面渲染后向Response和服务器中网站的目录下都写入需要返回的html,而第二次访问此页时,在执行Action前,程序会先在指定目录下寻找是否存在当前请求对应的静态页面,如果有,则直接返回静态页面,如果没有,则按第一次访问此请求进行处理,即执行Action,并向Response和服务器中网站的目录下都写入需要返回的html.利用这种方式,可以在网站在请求的过程中,会动态的生成静…
首先解释一下什么是动态处理页面静态化 对于需要静态化的页面,第一次访问某个Action时,会先执行Action,并在页面渲染后向Response和服务器中网站的目录下都写入需要返回的html,而第二次访问此页时,在执行Action前,程序会先在指定目录下寻找是否存在当前请求对应的静态页面,如果有,则直接返回静态页面,如果没有,则按第一次访问此请求进行处理,即执行Action,并向Response和服务器中网站的目录下都写入需要返回的html.利用这种方式,可以在网站在请求的过程中,会动态的生成静…
静态化的基本理解就是,常用的资源以文本形式保存,客户端访问时无需经过程序处理,直接下载 但是不存在的文件需要经过程序处理,文件内容如果需要有更动或删除,则直接删除文件本身 1.IIS Express 添加对json mine文件支持 在IIS Express文件夹里 运行以下命令 appcmd set config /section:staticContent /+[fileExtension='.json',mimeType='application/json'] 2.IIS里添加 json…
以前也说过页面静态化   但是说的好像不清楚 这次我用一个插件 URLRewriter  重写URL 先引用dll 然后再web.config中三步走 <configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter"/> </configSections&…
Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3.4.5和WebApi(跨平台) 1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有了很多这方面的文章,故而我就想我是写还是不写呢,但是想来想去,我还是写一下吧,因为网上的文章太杂乱,不是最新版本,不是很整齐并且也可能会遇到各种各样的问题,所以我决定写一篇从…
MVC 页面静态化   最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存. 基本原理为: 1.为需要静态化的Action上加一个自定义的实现了IResultFilter的Attribute(具体见下文) 2.添加一条路由规则,实现访问静态页面,把它放在原有路由的前面 //http://product/123.html routes…
最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存. 基本原理为: 1.为需要静态化的Action上加一个自定义的实现了IResultFilter的Attribute(具体见下文) 2.添加一条路由规则,实现访问静态页面,把它放在原有路由的前面 //http://product/123.html routes.MapRoute( "…
Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态化的朋友会问为啥要这么做,jsp访问好好的 为啥多此一举 好处: 1. 效率方面,访问html页面时,服务器找到页面后直接返回,不会再进行后台处理,速度快很多很多,同时也是解决高并发,降低服务器资源占用最有效的方式. 各大门户类网站大家都可以看看页面的后缀,几乎都是.html结尾的. 2. seo方…
我们知道,IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件. 当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后Check请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块.1,如果是静态资源的请求,则分配由IIS处理(IIS在本地Web Server上访问请求的文件),将内容输出到控制台,发出请求的浏览器就能接收到它了.-----End2…
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则.强大的功能.高效的渲染效率.详尽的帮助说明与不断的更新与维护.常见的前端模板引擎有: 常用的java后台模板引擎:jsp.FreeMarker.Velocity等. 请不要迷恋速度,为了推广的测试可能是片面的,好的模板引擎经得起时间考验,建议大家选择成熟的.常用的模板引擎.另外不管前后端的模板引擎…
本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=91&extra=page%3D1 上一节,我们已经搭建好了ASP.NET MVC3的开发环境.有了开发环境,我们就能够开始写一个Web应用程序了.1.首先打开VS2010.新建项目,在安装模板中选择Web,在右边选择ASP.NET MVC 3 Web Application.   2.输入项目名称.选择解决方案位置和输入解决方案名称,后选择OK,系统叫提示你选择项目模板…
用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC 4 来实现每个插件都可以完全从主站点剥离出来,即使只是一个插件,也是一个完整的站点,同时也可以和其它插件一起组装成一个庞大的系统. 参考资料: ASP.NET MVC 4 源码. Orchard 源码. MVC3PlugInDemo 源码. ASP.NET MVC的Razor引擎:View编译原理 基于ASP.NET MVC3 Razor的模块化/插件式架构…