仓酷云

标题: ASP.NET网页设计注重!ASP.NET MVC 3 的一个 OutputCache 成绩仓酷云 [打印本页]

作者: 若相依    时间: 2015-1-18 11:18
标题: ASP.NET网页设计注重!ASP.NET MVC 3 的一个 OutputCache 成绩仓酷云
刚刚打开这篇专题,猛然见到HAL9000发表的《对于大型公司项目平台选择j2ee的几层认识》系列,深受启发。在用ASP.NETMVC3重写博客园网站首页时,专程寄望了一下这个缓存成绩,经由过程这篇博文分享一下。
在ASP.NETMVC3中假如利用了OutputCache,必定要在Action中增加上面的代码,牢记!
  1. Response.Cache.SetOmitVaryStar(true);
复制代码
这是一个陪伴ASP.NET从1.0到4.0的OutputCacheBug,ASP.NETMVC3是基于ASP.NET4.0的,以是也躲不外。
成绩演示
上面先来体验一下不加Response.Cache.SetOmitVaryStar(true);的情形。
示例Action代码:
  1. [OutputCache(Duration=120)]publicActionResultSiteHome(int?pageIndex){...}
复制代码
注:OutputCache.Location的默许值是OutputCacheLocation.Any(服务端、客户端、代办署理服务器端等都举行缓存)
第一次哀求:
ASP.NET网页设计注重!ASP.NET MVC 3 的一个 OutputCache 成绩仓酷云
登录/注册后可看大图

第二次哀求(F5革新扫瞄器):
ASP.NET网页设计注重!ASP.NET MVC 3 的一个 OutputCache 成绩仓酷云
登录/注册后可看大图

第三次哀求(F5革新扫瞄器):
ASP.NET网页设计注重!ASP.NET MVC 3 的一个 OutputCache 成绩仓酷云
登录/注册后可看大图

接着第四次哀求会前往304,第五次哀求又前往200。。。
再体验一下加Response.Cache.SetOmitVaryStar(true);的情形。
  1. [OutputCache(Duration=120)]publicActionResultSiteHome(int?pageIndex){Response.Cache.SetOmitVaryStar(true);...}
复制代码
第一次哀求:

第二次哀求(F5革新扫瞄器):

第三次哀求(F5革新扫瞄器):

注:只需在缓存无效期内,服务器一向前往304。
成绩剖析
1.200与304的区分
当前往形态码是200时,服务器端会将以后哀求的全部页面全体发送给客户端(损耗下行带宽)。
当前往形态码是304时,因为客户端扫瞄器供应的Last-Modified工夫在服务器真个缓存无效期内,服务器端只发送这个形态码,不发送页面的任何内容(几近不用耗下行带宽),扫瞄器间接从当地缓存中猎取内容。
以是,304的优点就是勤俭带宽,呼应速率更快。
2.对服务端缓存的影响
加不加Response.Cache.SetOmitVaryStar(true),服务真个缓存情形都是一样的。只是不加SetOmitVaryStar(true)时,关于统一个客户端扫瞄器,每隔一次哀求,服务器端就不论客户端扫瞄器的缓存,从头发送页面内容,可是只需在缓存无效期内,内容仍是从服务器端缓存中读取。
成绩伤害
ASP.NET缓存的这个诡异举动,让你在不知不觉中华侈了带宽资本。
感受
用ASP.NET开辟多年,这个陪伴ASP.NET从1.0到4.0的OutputCacheBug本人居然在客岁才发明。之前测试时第一次哀求后按F5看前往304就觉得没成绩,而成绩恰好就鄙人一下F5,偶然多按一下F5呈现200也没出格寄望。因而可知,仔细对程序员来讲是何等主要,良多bug、良多功能成绩常常不是程度不敷,而是不敷仔细。
优异的程序员都是仔细的人,不但在写代码的时分仔细,在生存中也一样仔细。别看他木讷的模样,你对他所做的统统,他城市仔细地察看到、体味到。做仔细的程序员,爱惜仔细的程序员!
前天傍晚我发表了《net网页编程的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。
作者: 柔情似水    时间: 2015-1-19 06:28
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
作者: 金色的骷髅    时间: 2015-1-24 09:51
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
作者: 海妖    时间: 2015-1-25 21:30
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 简单生活    时间: 2015-1-28 10:34
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
作者: 小妖女    时间: 2015-2-5 14:11
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
作者: 若相依    时间: 2015-2-8 06:21
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
作者: 灵魂腐蚀    时间: 2015-2-24 12:18
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
作者: 蒙在股里    时间: 2015-3-6 09:10
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
作者: 谁可相欹    时间: 2015-3-6 20:54
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
作者: 只想知道    时间: 2015-3-11 18:44
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
作者: 仓酷云    时间: 2015-3-19 07:40
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
作者: 小女巫    时间: 2015-3-27 13:47
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2