艾伟_转载:浅析ASP.NET页面缓存的几点体会

  前几天遇到个问题,百思不得其解。后来查阅了一些资料心里才有了点思路。把自己遇到的问题记录下来希望能给其他的园友一些帮助吧。

  事情是这样的。我的一个ASP.NET页面用window.open导航后再次访问时没有得到更新,确切的说是再次访问时根本就没有访问服务器。可是这个现象在我的机器上并没有出现,而项目组中其他的机器都有此问题。当时我这个郁闷呐,因为不方便调试,最后就在页面上输出好多alert。终于在几次试验之后发现了问题的所在。

  其主要问题就是IE缓存了页面,当服务器端出现更新时IE并没有检查到。我的机器没有问题是因为我的ie设置为每次访问页面都要检查更新,他们的则是自动检查更新。由于我再次导航到页面用的是前端的window.open方法,此方法不能使浏览器的自动检查起作用。

  上面的叙述比较乱,不知道大家能不能看懂。下面我说下具体的解决方法吧。

  方法一:导航时用服务器端的Response.Redirect方法,或者用前端得window.location.replace方法。

  方法二:禁用ASP.NET页面缓存。

  在必要的时候我还是推荐方法二的。因为我们做开发的不能控制浏览器的设置。用户如果把IE设置为从不检查更新缓存的问题则不好避免,所以还是用方法二,让IE的临时文件夹不存在页面文件。

  另外,是否禁用页面缓存要根据实际情况来说,起初我认为页面缓存只是缓存在服务器,后来看了一篇blog

  发现缓存的意义还是很大的。在很多情况下可以大大减小服务器的压力。只不过开发过程中要多多从需求出发,不能盲目的设置什么属性。

时间: 2024-10-05 11:14:49

艾伟_转载:浅析ASP.NET页面缓存的几点体会的相关文章

浅析ASP.NET页面缓存的几点体会

前几天遇到个问题,百思不得其解.后来查阅了一些资料心里才有了点思路.把自己遇到的问题记录下来希望能给其他的园友一些帮助吧. 事情是这样的.我的一个ASP.NET页面用window.open导航后再次访问时没有得到更新,确切的说是再次访问时根本就没有访问服务器.可是这个现象在我的机器上并没有出现,而项目组中其他的机器都有此问题.当时我这个郁闷呐,因为不方便调试,最后就在页面上输出好多alert.终于在几次试验之后发现了问题的所在. 其主要问题就是IE缓存了页面,当服务器端出现更新时IE并没有检查到

艾伟_转载:ASP.NET数据缓存之数据缓存浅谈

ASP.NET数据缓存的学习是如何呢?如何使用ASP.NET数据缓存呢?在讲ASP.NET数据缓存之前还要先说一下如果在页面中使用参数缓存.前面讲过一个缓存设置VaryByParam="none"为无参数,我们也可以对VaryByParam进行设置,设置的参数与随 GET 方法属性发送的查询字符串值对应,或与使用 POST 方法发送的参数对应.将该属性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档.可能的值包括 none.星号 (*) 以及任何有效的查询字

艾伟_转载:ASP.NET底层的初步认识与理解

最近在国外的网站乱走一通,发现一些比较好的文章,收集整理加于自己的理解,作为笔记形式记录下来,让以后自己有个回忆. ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用.绝大多数的人只熟悉高层的框架如WebForms和WebServices-这些都在ASP.NET层次结构在最高层.在这篇文章中我将会讨论ASP.NET的底层机制并解释请求(request)是怎么从Web服务器传送到ASP.NET运行时然后如何通过ASP.NET管道来

艾伟_转载:ASP.NET缓存

介绍 缓存是在内存存储数据的一项技术,也是ASP.NET中提供的重要特性之一.例如你可以在复杂查询的时候缓存数据,这样后来的请求就不需要从数据库中取数据,而是直接从缓存中获取.通过使用缓存可以提高应用程序的性能. 主要有两种类型的缓存: 1.输出缓存Output caching2.数据缓存Data caching 1. 输出缓存(Output Caching) 使用输出缓存,你可以缓存最后输出的HTML页面,当相同的页面再次请求的时候,ASP.NET不会再执行页面的生命周期和相关代码而是直接使用

艾伟_转载:ASP.NET Session详解

当用户在 Web 应用程序中导航 ASP.NET 页时,ASP.NET 会话状态使您能够存储和检索用户的值.HTTP 是一种无状态协议.这意味着 Web 服务器会将针对页面的每个 HTTP 请求作为独立的请求进行处理.服务器不会保留以前的请求过程中所使用的变量值的任何信息. ASP.NET 会话状态将来自限定时间范围内的同一浏览器的请求标识为一个会话,当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个

艾伟_转载:ASP.NET MVC分页的实现

在ASP.NET中,GridView控件本身就带有分页的功能,只要把当前页面的索引值赋给GridView的PageIndex就可以实现了分页,至于数据怎么分页,全都由GridView封装起来了. 在ASP.NET MVC中分页的实现就只能靠自己来设计了.首先来说一下分页的原理.现在有一个张news表,中间有很多信息,我们假设一页显示5条记录,这样,页面数量=总记录数/5:这里,如果出现小数,得进位取整.如比总记录和数为51,那么分的页面数量是11,最后一页只有一条记录.好,有这样一个思路后,现在

艾伟_转载:ASP.NET Forms验证的安全性问题研究——为什么加密代码需要配置为服务

申明:这个帖子不是要你去干啥坏事,就是提醒一下你可能会遇到的安全性问题. ASP.Net提供了内置的登录验证,最为常用的就是Forms验证.讲解如何配置的文章非常多,这里就不再讲如何配置使用这个验证的方式了.下面讲讲其在安全性上存在的一些被忽视的问题.其实它本身没有问题,而使用的方式上会附带出来一些问题. 本文将分三部分讲实际应用中将会遇到的安全性问题,并且加以研究,并尝试提出解决方案. 一.简单的Forms被破解危机二.垂直划分站点的Forms被破解危机三.危机将带来什么后果    一.简单的

艾伟_转载:ASP.NET MVC数据验证

关于ASP.NET MVC的验证,用起来很特别,因为MS的封装,使人理解起来很费解.也可能很多人都在Scott Guthrie等人写的一本<ASP.NET MVC 1.0>书中,见过NerdDinner项目中对Dinner对象修改和添加的时的数据验证.但有许多封装的地方,不知道是怎样的工作原理,今天研究了,拿出来给大家分享一下. 数据库还是上一篇blog中的库与表,同样的方法来创建news表的实体类,在自动生成的news这个实体类中,我们发现有一个特殊的分部方法: partial void O

艾伟_转载:ASP.NET开发中关于Web标准的几点建议

  Visual Studio.NET从2003到现在的2008,一路走来慢慢强大--从以前的vs2003能自动改乱你的html代码到现在在vs2008中都能直接对html代码进行w3c标准验证并提示了,非常不易. 论坛中也经常有从事.NET开发的新手朋友问一些ASP.NET开发过程中与Web标准之间的冲突问题,其实说到底就是客户端代码生成的问题.更高深的开发层面的东西我也说不出来,从页面前端的角度和大家分享一下建议: 少用ASP.NET中的服务器端控件 在Visual Studio中,有一系列