清除页面缓存

在开发中有时并不希望页面被缓存,特别是弹出式窗体,可以使用一下方法处理,将页面设置为不缓存。

方法一:在页面文件的HEAD中添加
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>

方法二 :在后端代码中添加,建议放在 Page_Load 事件中
Page.Response.Buffer = false;
Page.Response.Cache.SetNoStore();



C#清除页面缓存
private void SetPageNoCache()
{
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
}

(1) Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");

(2) HTML方法

<meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-Control" content="no-cache"><meta http-equiv="Expires" content="0">

(3) 重新调用原页面的时候在给页面传一个参数: href="****.ASPX?random()"
### UniApp 中清除页面缓存的方法 在开发过程中,如果需要清除页面缓存以确保每次加载的数据是最新的,则可以采用多种方法来实现这一目标。以下是针对不同场景下的解决方案: #### 一、Webview 的缓存清理 对于 Webview 加载外部资源时产生的缓存问题,可以通过调整后端服务器配置以及前端代码逻辑来进行处理。 1. **后端服务器配置** 在 Nginx 配置中设置 JS 和 CSS 文件的缓存时间为 `-1s` 可以强制浏览器不缓存这些静态文件: ```nginx location ~ .*.(js|css)?$ { expires -1s; error_log off; } ``` 2. **iOS 平台上的缓存禁用** 使用 `plus.ios` 提供的相关 API 来操作 iOS 系统中的 URL 缓存机制,具体如下: ```javascript let cache1 = plus.ios.newObject('NSURLCache'); let cache = plus.ios.invoke(cache1, 'sharedURLCache'); plus.ios.invoke(cache, 'removeAllCachedResponses'); plus.ios.invoke(cache, 'setDiskCapacity:', 0); plus.ios.invoke(cache, 'setMemoryCapacity:', 0); ``` 这些代码能够彻底清空内存和磁盘中的缓存记录[^1]。 3. **Android 平台上的缓存清理** 对于 Android 设备,可以直接调用 `plus.cache.clear()` 方法完成全局范围内的缓存删除工作: ```javascript plus.cache.clear(); ``` #### 二、页面跳转方式的选择 当涉及到本地页面之间的切换时,不同的跳转函数会对缓存行为产生影响。 - 如果使用 `uni.navigateTo` 跳转到新页面,原页面并不会被销毁而是保持其状态不变,这可能导致某些情况下出现数据残留现象。 - 改为使用 `uni.redirectTo` 则会先关闭当前活动页再导航至指定地址,从而避免上述隐患并触发重新渲染过程[^2]。 综上所述,在实际项目里可以根据需求灵活选用合适的策略组合起来达到最佳效果。 ```javascript // 示例:综合运用以上技术点的一个简单例子 function clearAndNavigate() { // 清理 WebView 缓存 (跨平台) if (/android/i.test(navigator.userAgent)) { plus.cache.clear(); } else if (/iphone|ipad|iPod/.test(navigator.userAgent)){ const cacheObj = plus.ios.newObject('NSURLCache'), sharedCache = plus.ios.invoke(cacheObj,'sharedURLCache'); plus.ios.invoke(sharedCache,'removeAllCachedResponses'); plus.ios.invoke(sharedCache,'setDiskCapacity:',0); plus.ios.invoke(sharedCache,'setMemoryCapacity:',0); } // 执行重定向动作代替普通的 navigateTo uni.redirectTo({ url:'/pages/targetPage/targetPage' }); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值