搜索

首页  >  问答  >  正文

javascript - 项目用IE浏览器打开修改前端内容,后台数据修改了,但是前端页面内容不变,用谷歌浏览器测试前端页面可以刷新,求大神解决。

1.项目用IE浏览器打开修改前端内容,后台数据修改了,但是前端页面内容不变,详细内容如下图所示:


2.对参数进行修改操作


3.点击保存后页面刷新后,内容仍然不变

4.没有改变


5.用谷歌浏览器操作,内容已经改变。

6.前台代码

过去多啦不再A梦过去多啦不再A梦2779 天前980

全部回复(9)我来回复

  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:35

    缓存么,清下缓存。

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-27 17:42:35

    多半是由缓存引起的,你查询这部分信息的接口有使用随机参数保证使用的不是缓存数据吗

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-27 17:42:35

    这个问题之前有遇到过,当时在Safari下偶现,在ie下必线。chrome正常
    这是因为get请求的时候Safari和ie会缓存,导致修改完后调用的是上一次缓存的结果。

    解决方法是在ajax请求是设置cache:false,不缓存

    也可以全局设置
    //不缓存
    $.ajaxSetup({ cache: false });

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:35

    看题主的地址,都加了 rand=Math.random(),所以这部分应该是没有缓存问题的。

    不过问题是代码中的链接似乎只有 ...update 那个跟数据有关,但是这个 update 的行为到底是从服务器更新到客户端(取),还是从客户端更新到服务器(存)?从 update 本身常用的场景来看,这里应该是取。但是大 form 行为来看,它又应该是存……

    先不说这个。从题主的描述,实际上存在两个过程,一个是存,一个是取。通常问题会出现在取的时候,所以大家都猜测是由于缓存引起的……不过通常不代表一定,所以应该做个排查

    1. IE 里存,Chrome 里取

    2. Chrome 里存,IE 里取

    我们已知 Chrome 是正常的,那 IE 是在存的时候不正常还是在取的时候不正常还是都不正常……就搞得明白了

    然后怎么办……纯前端我也不知道怎么办。如果排除了缓存的问题,剩下的事情就要跟服务端配合一起来找问题了……

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:35

    看你的IE的控制台是不是有报错

    回复
    0
  • 黄舟

    黄舟2017-05-27 17:42:35

    我之前也遇到过这个问题,IE会缓存所有请求数据,对于非静态数据请求响应添加header: Cache-Control: no-cache, no-store

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-27 17:42:35

    F12看看有没有报错 没有报错 清空缓存

    回复
    0
  • 世界只因有你

    世界只因有你2017-05-27 17:42:35

    shift+f5强制刷新缓存,多刷几遍

    回复
    0
  • 大家讲道理

    大家讲道理2017-05-27 17:42:35

    应该是缓存的问题。 IE 和 Edge (up to 14; Edge 15 我没测过…) 默认情况会缓存 GET 的 XHR 内容。解决的办法通常是

    • 采用 POST 方式请求而不是 GET (不推荐…)

    • 请求时添加随机参数如 ?t=[[某个时间戳]]

    • @Donle 的 Cache-Control 方法没有试过…

    回复
    0
  • 取消回复