IE11浏览器缓存bug

项目在集中测试阶段,客户从各地过来,测出来很多“奇形怪状”的bug。有些客户带着新买的笔记本Win10操作系统,没自己装浏览器,整着IE11就上了。结果好好的功能没有实现,其他浏览器显示木问题。
一点一点跟断点,发现数据是存进去的,但是显示的时候请求根本没有进后台,所以怀疑走的缓存。打开控制台,发现果不其然。

怎么每次强制请求后台呢,最傻傻的方法就是加个时间戳

.factory('UserDeviceService', function ($resource) {
return $resource('/users/:dest', {}, {
            query: {method: 'GET', params: {dest: "getDevicesByUserID"}, isArray: true }
        });
 app.$scope.getUserDevices = function () {
        UserDeviceService.query({cacheKill: new Date().getTime()},function (data) {
            //logic
        });
    }

首先作为一个程序员,感觉很不优雅,其次,项目都做完了,改动太大,手动去改,傻傻的,万能的Stack Overflow有人回答“I have solved this problem by adding No-Cache headers to the response on server side.”(在服务器端加个No-Cache的header),这点还没测,自己能搞定的事,尽量别麻烦别人,而且不清楚后台是不是也要几个接口一个接口的改。我实现的方法是用每次强制请求后台,不去cache拿数据。

App.config([ '$httpProvider', function($httpProvider) {
    //initialize get if not there
    if (!$httpProvider.defaults.headers.get) {
    $httpProvider.defaults.headers.get = {};
    }
    //disable IE ajax request caching
    $httpProvider.defaults.headers.get['If-Modified-Since'] = '0';
    $httpProvider.defaults.cache=false;
} ]);

给两个参考链接:

WIN10 Developer的Blog

国外大神的Blog,包括jQuery,kendo等缓存bug

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值