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

  • 相关阅读:
    1006: [HNOI2008]神奇的国度
    1003: [ZJOI2006]物流运输trans
    Task 6.2冲刺会议六 /2015-5-19
    Task 6.2冲刺会议五 /2015-5-18
    Task 6.2冲刺会议四 /2015-5-17
    Task 6.3 场景调研
    Task 8 找水王
    Task 6.2站立会议三
    Task 6.2站立会议二
    Task 6.2站立会议一
  • 原文地址:https://www.cnblogs.com/zdz8207/p/5550648.html
Copyright © 2011-2022 走看看