chrome浏览器缓存html页面问题

时间:2024-04-05 07:47:30

问题描述:

浏览器打开一个页面时,有时候会初始化页面数据,一切正常。而有时候则不会初始化页面数据,点击查询也没有效果。通过网络抓包以及后台代码的分析发现是浏览器缓存了html页面信息导致的结果。具体操作如下,已备忘。

首先看下页面请求的逻辑:

chrome浏览器缓存html页面问题chrome浏览器缓存html页面问题

左边是请求HTML的步骤,右边是页面初始化信息的请求。其中就是页面初始化时不会走初始化登录账号信息的过滤器。

第一次请求html页面信息时,会初始化账号信息,然后页面初始化ajax请求,会通过验证登录账号的过滤器,然后获取初始化数据。但是如果这个时候关掉浏览器再打开点击请求html页面菜单,这个时候不会发送http请求,而是直接用的浏览器的缓存页面,导致登录账号信息未初始化,接着页面数据初始化的ajax请求就会被登录账号信息的验证过滤器拦截,导致拿取不到页面初始化数据而查询为空。

解决办法有两种:

1.在请求html页面的url后面加上一个时间戳,防止浏览器缓存

function timestamp(url){  
      var getTimestamp=new Date().getTime();  
      url=url+"?timestamp="+getTimestamp  
      return url;  
    } 


 

 

 

2.不直接请求html页面,改用一个请求路径,通过后台服务器的controller层来返回一个html页面

@RequestMapping(value = "/getAaaPage", method = RequestMethod.GET)
    public ModelAndView getCcsAndCssMsgPage() {
        ModelAndView view = new ModelAndView( "query-aaa-msg" );
        return view;
    }