仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1026|回复: 12
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计注重!ASP.NET MVC 3 的一个 OutputCache 成绩仓酷云

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
刚刚打开这篇专题,猛然见到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(服务端、客户端、代办署理服务器端等都举行缓存)
第一次哀求:

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

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

接着第四次哀求会前往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:40 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-24 09:51:15 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
海妖 该用户已被删除
地板
发表于 2015-1-25 21:30:20 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
简单生活 该用户已被删除
5#
发表于 2015-1-28 10:34:20 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
小妖女 该用户已被删除
6#
发表于 2015-2-5 14:11:13 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
若相依 该用户已被删除
7#
 楼主| 发表于 2015-2-8 06:21:00 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-2-24 12:18:59 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
蒙在股里 该用户已被删除
9#
发表于 2015-3-6 09:10:27 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
谁可相欹 该用户已被删除
10#
发表于 2015-3-6 20:54:53 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
只想知道 该用户已被删除
11#
发表于 2015-3-11 18:44:51 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
12#
发表于 2015-3-19 07:40:09 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
小女巫 该用户已被删除
13#
发表于 2015-3-27 13:47:23 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 03:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表