网站中浏览器缓存的控制(IIS+ASP.Net)
网站中浏览器缓存的控制(IIS+ASP.Net)
在IIS6.0 + Windows Server 2003通过测试。如有错误敬请指正。
1、 IIS控制(对Js等文件):
在IIS管理器中查看文件属性,在HTTP头的Tab页中,设置“启用内容过期”。
l IIS默认(不勾选):
在同一个浏览器窗口内(包括内部的框架内),不管是哪个页面,引用这个js文件时,都不会去服务器下载。当关掉浏览器新开窗口,或是弹出新的窗口时,或是按F5刷新,都会重新下载js。
l 立即过期:
无论哪种情况下,都会重新下载js文件。
l 设置时限或过期时间:
当已经过期时,无论哪种情况下,都会重新下载js文件。
当没过期时,不会重新下载js文件,即使关掉浏览器重开窗口也不会。F5时会重新下载。
2、 服务端控制(对aspx等程序文件):
在代码中进行设置。
l 设置缓存方式:Response.Cache.SetCacheability(HttpCacheability.Server);
l 设置过期: Response.Cache.SetMaxAge(new TimeSpan(1, 1, 1));
或 Response.Cache.SetExpires(DateTime.Now.AddHours(1));
缓存方式
Public
Server
NoCache
Private
有设置过期
未过期时,无论如何都不重新下载,即使F5刷新也不。过期后任何情况都重新下载
未过期时,除非按F5刷新,否则不下载,关掉重开窗口也不。过期后任何情况都重新下载。
没设置过期
任何情况都会去服务器下载
3、 补充说明:
ASPX文件在IIS中设置HTTP头无效。
相关文档:
在Global.asax
需要回顾的知识点是 线程 和 文本文件的读写。
<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Threading" %>
<script runat="server">
string logpath;
Thread thread;
......
先看看ASP.NET页面刷新的实现方法:
第一:
C# code
private void Button1_Click( object sender, System.EventArgs e )
{
Response.Redirect( Request.Url.ToString( ) );
}
第二:
C# code
private void Button2_Click( object sender, System.EventArgs e )
{
Response.Write( " < script lang ......
写cookie
1 HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项
2 DateTime dt = DateTime.Now;//定义时间对象
3 TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用时间,具体查msdn
4 cookie.Expires = dt.Add(ts);//添加作用时间
5 cookie.Values.Add("user","cx ......
在后台用C#枚举控件不像javascript那么简单,HasControls只能抓到直属下级的控件,如果有多个div,table嵌套,就要递归了
public static void CloseAllContent(System.Web.UI.Control page,bool bOpen)
{
int nPageControls = page.Controls.Count ......
环境:ASP.NET(C#),Visual Studio 2010。
提示:未能加载类型“EMS.App_Code.PersonalInfo”。如果该类型位于App_Code文件夹中,请检查它是否已编译。如果该类型位于已编译的程序集中,请检查该程序集是否被该项目引用。
处理:
自己做得一个小程序,取名EMS,并在App_Code文件夹下建立了类PersonalInfo、Sal ......