网站中浏览器缓存的控制(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头无效。
相关文档:
浅谈ASP.NET的内部机制(一)
浅谈ASP.NET的内部机制(二)
浅谈ASP.NET的内部机制(三)
浅谈ASP.NET的内部机制(四)
浅谈ASP.NET的内部机制(五)
浅谈ASP.NET的内部机制(六)
浅谈ASP.NET的内部机制(七)
浅谈ASP.NET的内部机制(八) ......
许久以前,写过一篇《asp.net页中动态加入样式表文件》,后来发现在使用时如果每页都写这么个函数真是很麻烦,于是自己写了一个Page的派生。将这个函数加了进去。
/**//// <summary>
/// 作者 邹健
///  ......
先看看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 ......
using System;
using System.Data;
using System.Diagnostics;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
namespace System
{
/// <summary>
/// Description of MySqlDBUtil.
/// </summary>
public class MySqlDBUtil
{
&nbs ......
写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 ......