禁止火狐浏览器缓存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缓存机制是有很多种很多层面的,有空可以深入了解下

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值