在前端开发中,我们经常使用 AJAX 来异步获取数据并更新页面部分。有时在 Internet Explorer 浏览器中,即使 HTML 被修改,AJAX 调用返回的数据却会被缓存,导致显示的可能不是的数据。而 Firefox 则能正常显示新的数据。
为了解决这个问题,我们可以采取多种策略来确保数据的实时性。在 Prototype 的 GET 请求中,我们可以通过添加随机参数来避免缓存。例如,我们可以设置 pars 如下:
"mod=readArticle&fid='+$F('fid')+'&rand='+Math.random()"
在服务器端,我们可以使用 Java 来设置 HTTP 头信息,从而在 JSP 或 Servlet 中禁止浏览器缓存数据。代码如下:
```java
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
```
我们也可以在 HTML 标记中设置这些禁用缓存的指令。将它们放在 `` 标签内,如下所示:
```html
```
如果你正在使用某种库或框架(如 Cambrian),并且调用了 `cambrian.render('body')`,你也可以在该库或框架中寻找是否有禁用缓存的相关设置或方法。可能的话,你可以在该处进行设置以确保数据的实时性。
要解决这个问题,我们可以结合前端、后端和库或框架的设置,确保 AJAX 调用返回的数据不会被浏览器缓存,从而实时显示的数据。