禁止火狐浏览器缓存input标签方法

禁止火狐浏览器缓存input标签方法

问题1:在火狐浏览器里,云平台的输入框、选项框、勾选框…填写之后按F5刷新页面,之前填的东西会保留着,其它浏览器不会
火狐强制刷新用Ctrl + F5
浏览器自动保存表单内容可以设置的

问题2:在网页上用<input taype="hidden" value="xxx">的方式来存储一些变量,值被改变后,按下F5刷新网页,input的值会被Firefox自动还原到刷新前的状态,所以某些时候,一些基于这些值进行的JS事件就无法被初始化。
让Firefox不缓存input值需要进行如下修改:
<input autocomplete="off" type="text" />
input加上一个 autocomplete="off" 的属性就能阻止Firefox的默认缓存机制。刷新之后,这些input的值都初始化。

还有一个写法,在form标签里面加上autocomplete="off" 的属性可以把全个表单中所有input都设置为不缓存的:
<form autocomplete="off">
<input type="text" /><br />
<input type="text" />
</form>

---------------------------------------
另外级联选择的可以在页面加载完成后用js重新赋值一次。
//避免浏览器缓存选择已选省份无法触发onchange事件,省份不为0,城市为0时自动根据省份请求城市
$(function(){
if($('#province').val() != 0 && $('#city').val() == 0){
$.ajax({
type: 'post',
url : base_url+'Manage/Common/getProvinceCities',
dataType:'json',
data: 'pid='+ $('#province').val(),
success: function(result){
resetCities(result);
},
error: function(result) {
alert('error');
}
});
}
});

---------------------------------------

其他几种禁止浏览器缓存页面的方法:
1.在要禁止缓存的页面<head>中加以下脚本:
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

2.在要禁止缓存的页面<head>中加以下脚本:
Jsp代码
<%
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);
%>

head 里面是整个页面的缓存,跟表单input不一样的

返回状态304的就是缓存到本地的文件,不会重新从服务器加载的
http缓存机制是有很多种很多层面的,有空可以深入了解下

 

posted @   大自然的流风  阅读(1766)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2013-06-01 解决 apache error 指定网络名不再可用 "an unknown filter was not added: DEFLATE"的问题
点击右上角即可分享
微信分享提示