https://www.cnblogs.com/lsy-blogs/p/7738129.html

一、IE浏览器缓存的内容分析:

  IE浏览器会缓存网页中的GET和XHR的内容,并且在IE浏览器中如果请求方式是get方式的话,IE浏览器会进行识别,如果该get请求的url是第一次请求的话,会请求项目的后台,从数据库中获取数据,如果该get请求的url不是第一次请求的话,那么该url就不会请求项目后台,IE浏览器会直接从缓存中拿到上次该url获取的数据,无论是什么插件的get方式请求,IE浏览器都会这样进行处理的;  

  这是一个非常严重的问题,坑死人了。。。

二、IE浏览器中各种插件或请求获取的数据与数据库的数据不同步的原因:

  各种插件或请求如果是利用get方式请求的时候,在IE浏览器中都会按照IE浏览器缓存机制进行处理的,因此会产生网页中的数据与数据库的数据不同步的现象;

三、解决IE浏览器中显示数据与数据库的数据不同步的方法:

  方法一:提交方式是get方式,但是在传递的参数中添加一个随机数或当前时间戳的参数,从而保证每次url请求唯一性,从而解决在IE浏览器中从数据库中获取数据;

  方法二:提交方式修改为post方法,这样就不会出现这样的问题了;

四、bootstrap-table插件实例解决过程:

  1. 问题描述:bootstrap-table插件在使用IE浏览器打开时,使用增加、修改、删除等功能,操作成功后,网页中显示的数据是操作之前的,但是数据库中的数据已经发生了改变,网页中的数据不能够与数据库数据保持一致;

  2. 问题思路:该问题还是因为IE浏览器中对get方法请求的处理方式和IE浏览器中的缓存问题,具体原因见上述一和二的分析;

  3. 解决方法:

方法一:bootstrap-table插件提交方式是get方式,但是在传递的参数中添加一个随机数或当前时间戳的参数(此参数在后台是没有用的,只是用来保证每次请求的url唯一性);

方法二:bootstrap-table插件提交方式是post方式,并且在bootstrap-table中添加一个配置信息:contentType : "application/x-www-form-urlencoded";

通过以上两种方法中的任意一种,都可以解决IE浏览器中因为缓存问题,而导致bootstrap-table插件中网页的数据与数据库数据不一致的问题;

layui 在IE浏览器下有缓存数据的解决办法

1.在需要刷新数据不走缓存的function函数内添加:

 ,where: {
    time:new Date()
}

2. 在返回数据的Controller层配置Response取消缓存消息头:

response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");

[Javascript]网页链接加上时间戳防止串用户

最近客服来报,一批用户访问公司网站的时候,由于其网络环境有代理服务器,导致A用户看到B用户的信息,这是非常尴尬的事情。解决的方法也很容易,给网址加上时间戳就可以了,用JS就能实现。

JS代码如下

// 时间戳
function timestamp() {
    return 't='+new Date().getTime()+''+Math.floor(Math.random()*9999+1000);
}
//在URL上设置时间戳
function setUrlStamp(url)
{
    url = url.replace(/(^\s*)|(\s*$)/g,'');
    if(url.indexOf("t=") == -1)
    {
        if(url.indexOf("?") != -1)
        {
            url = url+"&"+timestamp();
        }else
        {
            url = url+"?"+timestamp();
        }
    }
    return url;
}
//在某片区域上给所有a标签设置时间戳
function setHrefStamp(area)
{
    var target = $(area+" [href]");
    if(target.length==0) return;
    target.each(function(index){
        $(this).attr('href',setUrlStamp($(this).attr('href')));
    });
}

调用方法:

$(function() {
    setHrefStamp("#test");
});