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