以编程方式删除回发时的浏览器缓存

时间:2013-09-09 12:52:36

标签: c# javascript jquery asp.net caching

有没有以编程方式在回发后删除我的浏览器缓存?我正在使用一个jquery函数,在使用cache:true

的按钮单击时使用ajax
function CallSyncAjax(url, args, resid, EnableCache, ErrorDivID) {
$.ajax({
    type: "GET",
    url: url,
    data: args,
    cache: EnableCache,
    success: function (data) {
        var StrResponse;
        StrResponse = data.split('@@@');
        if (resid == "1001") {
            LoginByAccountRes(StrResponse[0]);
        }
    }
   })
 }

C#:

 protected override void OnLoad(EventArgs e)
{
    // Set Cacheability...
    DateTime dt = DateTime.Now.AddMinutes(1);
    Response.Cache.SetExpires(dt);
    Response.Cache.SetMaxAge(new TimeSpan(dt.ToFileTime()));

    // Complete OnLoad...
    base.OnLoad(e);
}

问题是每当我在一分钟后刷新页面,甚至当我关闭浏览器并重新打开它时,缓存仍然存在

3 个答案:

答案 0 :(得分:0)

由于浏览器安全原因,您无法通过代码清除浏览器的历史记录,您只能设置HTTP标头以告知浏览器不要对您的网页进行操作:

缓存控制:无缓存

答案 1 :(得分:0)

JavaScript只允许在浏览器上执行某些操作,而访问浏览器的缓存不是其中之一。

但是,您可以使用meta标记来控制网页的缓存。

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />

答案 2 :(得分:0)

您可以在页面上使用这些不标记缓存的元标记

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

但是由于浏览器的安全原因,您无法以编程方式清除浏览器缓存。